mirror of
https://github.com/torvalds/linux.git
synced 2026-10-17 14:30:03 +02:00
The RCU guard is declared in the body of the per-TID loop, so it is still
held across the teardown pass. nxpwifi_del_rx_reorder_entry() flushes the
Rx workqueue and deletes the reorder timer synchronously, both of which
sleep, so a station deauthenticating from the AP splats under
CONFIG_DEBUG_ATOMIC_SLEEP.
Scope the guard to the collection walk. The teardown does not need RCU: it
serialises on priv->rx_reorder_tbl_lock[] and frees with kfree_rcu().
Fixes:
|
||
|---|---|---|
| .. | ||
| 11ac.c | ||
| 11ac.h | ||
| 11ax.c | ||
| 11ax.h | ||
| 11h.c | ||
| 11n_aggr.c | ||
| 11n_aggr.h | ||
| 11n_rxreorder.c | ||
| 11n_rxreorder.h | ||
| 11n.c | ||
| 11n.h | ||
| cfg.h | ||
| cfg80211.c | ||
| cfg80211.h | ||
| cfp.c | ||
| cmdevt.c | ||
| cmdevt.h | ||
| debugfs.c | ||
| ethtool.c | ||
| fw.h | ||
| ie.c | ||
| init.c | ||
| join.c | ||
| Kconfig | ||
| main.c | ||
| main.h | ||
| Makefile | ||
| scan.c | ||
| sdio.c | ||
| sdio.h | ||
| sta_cfg.c | ||
| sta_cmd.c | ||
| sta_event.c | ||
| sta_rx.c | ||
| sta_tx.c | ||
| txrx.c | ||
| uap_cmd.c | ||
| uap_event.c | ||
| uap_txrx.c | ||
| util.c | ||
| util.h | ||
| wmm.c | ||
| wmm.h | ||