iwlwifi: mvm/pcie: adjust A-MSDU tx_cmd length in PCIe
authorJohannes Berg <johannes.berg@intel.com>
Fri, 2 Dec 2016 09:04:49 +0000 (10:04 +0100)
committerLuca Coelho <luciano.coelho@intel.com>
Mon, 6 Feb 2017 17:19:15 +0000 (19:19 +0200)
commit05e5a7e58d3f8f597ebe6f78aaa13a2656b78239
tree79d0e223733d4cdb4c8d3cd21d14c4a1a75684ca
parentbd05a5bd6b11d7fd26a668de83c5cb996de05f8f
iwlwifi: mvm/pcie: adjust A-MSDU tx_cmd length in PCIe

Instead of setting the tx_cmd length in the mvm code, which is
complicated by the fact that DQA may want to temporarily store
the SKB on the side, adjust the length in the PCIe code which
also knows about this since it's responsible for duplicating
all those headers that are account for in this code.

As the PCIe code already relies on the tx_cmd->len field, this
doesn't really introduce any new dependencies.

To make this possible we need to move the memcpy() of the TX
command until after it was updated.

This does even simplify the code though, since the PCIe code
already does a lot of manipulations to build A-MSDUs correctly
and changing the length becomes a simple operation to see how
much was added/removed, rather than predicting it.

Fixes: 24afba7690e4 ("iwlwifi: mvm: support bss dynamic alloc/dealloc of queues")
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
drivers/net/wireless/intel/iwlwifi/mvm/tx.c
drivers/net/wireless/intel/iwlwifi/pcie/tx.c