]> git.openpandora.org Git - pandora-kernel.git/commitdiff
iwlwifi: pcie: support frag SKBs
authorJohannes Berg <johannes.berg@intel.com>
Fri, 17 Apr 2015 14:38:31 +0000 (16:38 +0200)
committerEmmanuel Grumbach <emmanuel.grumbach@intel.com>
Tue, 4 Aug 2015 18:29:40 +0000 (21:29 +0300)
Allow frag SKBs in PCIe and advertise the maximum number of frags
to the opmode. As a fallback. linearize the SKB if it exceeds the
maximum number of fragments. This allows using the hardware better
(filling more TBs) and should improve performance when used by the
opmode.

Also adjust tracing to be able to deal with this.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
drivers/net/wireless/iwlwifi/iwl-devtrace-data.h
drivers/net/wireless/iwlwifi/iwl-trans.h
drivers/net/wireless/iwlwifi/pcie/internal.h
drivers/net/wireless/iwlwifi/pcie/trans.c
drivers/net/wireless/iwlwifi/pcie/tx.c

index 04e6649340b8c2b34d44f196aa20c531cbb83197..71a78cede9b079d61a6d557b0fa362a5d3fe7bc0 100644 (file)
@@ -35,8 +35,8 @@
 TRACE_EVENT(iwlwifi_dev_tx_data,
        TP_PROTO(const struct device *dev,
                 struct sk_buff *skb,
-                void *data, size_t data_len),
-       TP_ARGS(dev, skb, data, data_len),
+                u8 hdr_len, size_t data_len),
+       TP_ARGS(dev, skb, hdr_len, data_len),
        TP_STRUCT__entry(
                DEV_ENTRY
 
@@ -45,7 +45,8 @@ TRACE_EVENT(iwlwifi_dev_tx_data,
        TP_fast_assign(
                DEV_ASSIGN;
                if (iwl_trace_data(skb))
-                       memcpy(__get_dynamic_array(data), data, data_len);
+                       skb_copy_bits(skb, hdr_len,
+                                     __get_dynamic_array(data), data_len);
        ),
        TP_printk("[%s] TX frame data", __get_str(dev))
 );