• Johannes Berg's avatar
    iwlwifi: mvm/pcie: adjust A-MSDU tx_cmd length in PCIe · 48aa5ec2
    Johannes Berg authored
    commit 05e5a7e5 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: 24afba76 ("iwlwifi: mvm: support bss dynamic alloc/dealloc of queues")
    Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
    Signed-off-by: default avatarLuca Coelho <luciano.coelho@intel.com>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    48aa5ec2
tx.c 68.6 KB