wifi: mac80211: fix mesh id corruption on 32 bit systems
authorFelix Fietkau <nbd@nbd.name>
Wed, 13 Sep 2023 05:01:34 +0000 (07:01 +0200)
committerJohannes Berg <johannes.berg@intel.com>
Wed, 13 Sep 2023 08:14:44 +0000 (10:14 +0200)
commit6e48ebffc2db5419b3a51cfc509bde442252b356
tree7e75a3fe7877203cd668cb278ef95fe3aa367f51
parentd1383077c225ceb87ac7a3b56b2c505193f77ed7
wifi: mac80211: fix mesh id corruption on 32 bit systems

Since the changed field size was increased to u64, mesh_bss_info_changed
pulls invalid bits from the first 3 bytes of the mesh id, clears them, and
passes them on to ieee80211_link_info_change_notify, because
ifmsh->mbss_changed was not updated to match its size.
Fix this by turning into ifmsh->mbss_changed into an unsigned long array with
64 bit size.

Fixes: 15ddba5f4311 ("wifi: mac80211: consistently use u64 for BSS changes")
Reported-by: Thomas Hühn <thomas.huehn@hs-nordhausen.de>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
Link: https://lore.kernel.org/r/20230913050134.53536-1-nbd@nbd.name
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
net/mac80211/ieee80211_i.h
net/mac80211/mesh.c