]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
wifi: iwlwifi: mvm: use correct address 3 in A-MSDU
authorDaniel Gabay <daniel.gabay@intel.com>
Sun, 4 Feb 2024 22:06:03 +0000 (00:06 +0200)
committerSasha Levin <sashal@kernel.org>
Tue, 26 Mar 2024 22:19:10 +0000 (18:19 -0400)
commitae668e2e60dc21bee2af80c85147101e7457548c
tree4be1fe0d0dc327558b2a1bc9ad5d736710c74196
parentae25251ade016d897ecd040df10e9aa64a3e82fc
wifi: iwlwifi: mvm: use correct address 3 in A-MSDU

[ Upstream commit 2e57b77583ca34fdb6e14f253172636c52f81cf2 ]

As described in IEEE sta 802.11-2020, table 9-30 (Address
field contents), A-MSDU address 3 should contain the BSSID
address.

In TX_CMD we copy the MAC header from skb, and skb address 3
holds the destination address, but it may not be identical to
the BSSID.

Using the wrong destination address appears to work with (most)
receivers without MLO, but in MLO some devices are checking for
it carefully, perhaps as a consequence of link to MLD address
translation.

Replace address 3 in the TX_CMD MAC header with the correct
address while retaining the skb address 3 unchanged.
This ensures that skb address 3 will be utilized later for
constructing the A-MSDU subframes.

Note that we fill in the MLD address, but the firmware will do the
necessary translation to link address after encryption.

Signed-off-by: Daniel Gabay <daniel.gabay@intel.com>
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
Link: https://msgid.link/20240204235836.4583a1bf9188.I3f8e7892bdf8f86b4daa28453771a8c9817b2416@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/net/wireless/intel/iwlwifi/mvm/tx.c