summaryrefslogtreecommitdiff
path: root/include/net
diff options
context:
space:
mode:
authorKarl Mehltretter <kmehltretter@gmail.com>2026-08-11 10:27:02 +0200
committerJohannes Berg <johannes.berg@intel.com>2026-09-15 11:52:24 +0200
commit621d90169cef6c8da5b6134db5c0c4e23cdd09ce (patch)
tree0f9e2c83ed4b1e4910d3f35abf4e9a9f0ccb9abc /include/net
parent769ec67d0abc64c7f716d16e9826c8ae2c5264c2 (diff)
downloadlinux-621d90169cef6c8da5b6134db5c0c4e23cdd09ce.tar.gz
linux-621d90169cef6c8da5b6134db5c0c4e23cdd09ce.zip
wifi: brcmfmac: fix lost 802.1x TX completion wakeup
brcmf_txfinalize() decrements pend_8021x_cnt before a lockless waitqueue_active() check. atomic_dec() does not order the decrement against the check. The waiter can therefore observe a nonzero count while the waker observes an empty queue, losing the final wakeup and delaying key installation until the 950 ms timeout. Add smp_mb__after_atomic() to order the decrement before the queue check. wait_event_timeout() provides the matching barrier. LKMM confirms that this forbids the lost-wakeup outcome. Fixes: 21fff75d2fb6 ("brcmfmac: use wait_event_timeout for 8021x pending count") Assisted-by: Claude:claude-fable-5 Signed-off-by: Karl Mehltretter <kmehltretter@gmail.com> Acked-by: Arend van Spriel <arend.vanspriel@broadcom.com> Link: https://patch.msgid.link/20260811082702.44521-1-kmehltretter@gmail.com Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'include/net')
0 files changed, 0 insertions, 0 deletions