OSDN Git Service

iwlwifi: mvm: add AMSDU flag to offload assist
authorSara Sharon <sara.sharon@intel.com>
Thu, 16 Mar 2017 08:44:31 +0000 (10:44 +0200)
committerLuca Coelho <luciano.coelho@intel.com>
Mon, 5 Jun 2017 20:25:15 +0000 (23:25 +0300)
Enable offload assist for AMSDU when the AMSDU present flag is set.

Fixes: a830baba9c2e ("iwlwifi: mvm: support new TX API")
Signed-off-by: Sara Sharon <sara.sharon@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
drivers/net/wireless/intel/iwlwifi/mvm/tx.c

index 64ca8b9..4d0d23b 100644 (file)
@@ -480,8 +480,14 @@ iwl_mvm_set_tx_params(struct iwl_mvm *mvm, struct sk_buff *skb,
                struct iwl_tx_cmd_gen2 *cmd = (void *)dev_cmd->payload;
                u16 offload_assist = iwl_mvm_tx_csum(mvm, skb, hdr, info);
 
+               if (ieee80211_is_data_qos(hdr->frame_control)) {
+                       u8 *qc = ieee80211_get_qos_ctl(hdr);
+
+                       if (*qc & IEEE80211_QOS_CTL_A_MSDU_PRESENT)
+                               offload_assist |= BIT(TX_CMD_OFFLD_AMSDU);
+               }
+
                /* padding is inserted later in transport */
-               /* FIXME - check for AMSDU may need to be removed */
                if (ieee80211_hdrlen(hdr->frame_control) % 4 &&
                    !(offload_assist & BIT(TX_CMD_OFFLD_AMSDU)))
                        offload_assist |= BIT(TX_CMD_OFFLD_PAD);