On Sun, 2023-12-03 at 08:48 -0800, Jeff Johnson wrote: > Apologies for reporting an issue that has already been (somewhat) fixed > by 6e48ebffc2db ("wifi: mac80211: fix mesh id corruption on 32 bit > systems"). Issue was found internally in a backported kernel and that > fix was not present. > > But note that fix did not use DECLARE_BITMAP which I still think is the > right thing to do everywhere we are using bitops. > The mesh use here is a bit weird with the atomic ops on it, everything else just uses plain ops (|= etc.). I think that there could be done with cmpxchg64(), but you can't assume that on 32-bit machines ... However, I think the whole trick is really no longer needed? A quick look at the callers of ieee80211_mbss_info_change_notify() suggests that they all can sleep and also already hold wiphy mutex, so there's not even any need to bounce through the workqueue *again*? IOW, we can remove that whole thing? Do you see anything to the contrary? So realistically I think rather than paper over it again with DECLARE_BITMAP() and all the right thing here to do is actually try to understand the code again and make some cleanups, since it's grown and (mostly?) survived two major locking restructurings, but has not been adjusted to any of that. johannes