OSDN Git Service

mac80211: ensure that mgmt tx skbs have tailroom for encryption
authorFelix Fietkau <nbd@nbd.name>
Tue, 29 Jan 2019 10:10:57 +0000 (11:10 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 20 Feb 2019 09:13:19 +0000 (10:13 +0100)
commit06288a8e37077da3502c4cd4a7716491c96a75e1
tree79ce7138b6effff263d8d4658eded688fc5070f9
parentfd9d0553fba3d24fc3ba14012489de148a368e3b
mac80211: ensure that mgmt tx skbs have tailroom for encryption

commit 9d0f50b80222dc273e67e4e14410fcfa4130a90c upstream.

Some drivers use IEEE80211_KEY_FLAG_SW_MGMT_TX to indicate that management
frames need to be software encrypted. Since normal data packets are still
encrypted by the hardware, crypto_tx_tailroom_needed_cnt gets decremented
after key upload to hw. This can lead to passing skbs to ccmp_encrypt_skb,
which don't have the necessary tailroom for software encryption.

Change the code to add tailroom for encrypted management packets, even if
crypto_tx_tailroom_needed_cnt is 0.

Cc: stable@vger.kernel.org
Signed-off-by: Felix Fietkau <nbd@nbd.name>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
net/mac80211/tx.c