OSDN Git Service

iwlwifi: pcie: support transmitting SKBs with fraglist
authorJohannes Berg <johannes.berg@intel.com>
Fri, 1 Jun 2018 08:32:55 +0000 (10:32 +0200)
committerLuca Coelho <luciano.coelho@intel.com>
Fri, 28 Sep 2018 05:57:28 +0000 (08:57 +0300)
We want to be able to build A-MSDUs in higher layers, e.g. by
xmit_more, so support transmitting SKBs with fraglist to use
it for such.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
drivers/net/wireless/intel/iwlwifi/pcie/tx.c

index 6b6b864..67820bf 100644 (file)
@@ -2408,10 +2408,18 @@ int iwl_trans_pcie_tx(struct iwl_trans *trans, struct sk_buff *skb,
                                                     tb1_len)))
                        goto out_err;
        } else {
+               struct sk_buff *frag;
+
                if (unlikely(iwl_fill_data_tbs(trans, skb, txq, hdr_len,
                                               out_meta)))
                        goto out_err;
 
+               skb_walk_frags(skb, frag) {
+                       if (unlikely(iwl_fill_data_tbs(trans, frag, txq, 0,
+                                                      out_meta)))
+                               goto out_err;
+               }
+
                trace_iwlwifi_dev_tx(trans->dev, skb,
                                     iwl_pcie_get_tfd(trans, txq,
                                                      txq->write_ptr),