]> git.proxmox.com Git - mirror_ubuntu-zesty-kernel.git/commit
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)
committerStefan Bader <stefan.bader@canonical.com>
Tue, 20 Jun 2017 08:46:13 +0000 (10:46 +0200)
commit70ae4ba30c4a6e04c495edcfc90d6b388c9ad126
tree4f498821155a7e91fff951bc1369ec7c2b5b544b
parent13b522a03c174ef44ab49f8db2357bca8dfba819
iwlwifi: mvm/pcie: adjust A-MSDU tx_cmd length in PCIe

BugLink: http://bugs.launchpad.net/bugs/1691369
commit 05e5a7e58d3f8f597ebe6f78aaa13a2656b78239 upstream.

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>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Stefan Bader <stefan.bader@canonical.com>
Signed-off-by: Thadeu Lima de Souza Cascardo <cascardo@canonical.com>
drivers/net/wireless/intel/iwlwifi/mvm/tx.c
drivers/net/wireless/intel/iwlwifi/pcie/tx.c