From: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx> This reverts commit b0b2dc1eaa7ec509e07a78c9974097168ae565b7 which is commit ac35180032fbc5d80b29af00ba4881815ceefcb6 upstream. It should not have been backported here due to lack of other rcu changes in the stable branches. Cc: Johannes Berg <johannes@xxxxxxxxxxxxxxxx> Cc: Miriam Rachel Korenblit <miriam.rachel.korenblit@xxxxxxxxx> Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx> --- net/mac80211/chan.c | 4 +--- net/mac80211/mlme.c | 2 +- net/mac80211/scan.c | 2 +- net/mac80211/util.c | 4 +--- 4 files changed, 4 insertions(+), 8 deletions(-) --- a/net/mac80211/chan.c +++ b/net/mac80211/chan.c @@ -245,9 +245,7 @@ ieee80211_get_max_required_bw(struct iee enum nl80211_chan_width max_bw = NL80211_CHAN_WIDTH_20_NOHT; struct sta_info *sta; - lockdep_assert_wiphy(sdata->local->hw.wiphy); - - list_for_each_entry(sta, &sdata->local->sta_list, list) { + list_for_each_entry_rcu(sta, &sdata->local->sta_list, list) { if (sdata != sta->sdata && !(sta->sdata->bss && sta->sdata->bss == sdata->bss)) continue; --- a/net/mac80211/mlme.c +++ b/net/mac80211/mlme.c @@ -660,7 +660,7 @@ static bool ieee80211_add_vht_ie(struct bool disable_mu_mimo = false; struct ieee80211_sub_if_data *other; - list_for_each_entry(other, &local->interfaces, list) { + list_for_each_entry_rcu(other, &local->interfaces, list) { if (other->vif.bss_conf.mu_mimo_owner) { disable_mu_mimo = true; break; --- a/net/mac80211/scan.c +++ b/net/mac80211/scan.c @@ -501,7 +501,7 @@ static void __ieee80211_scan_completed(s * the scan was in progress; if there was none this will * just be a no-op for the particular interface. */ - list_for_each_entry(sdata, &local->interfaces, list) { + list_for_each_entry_rcu(sdata, &local->interfaces, list) { if (ieee80211_sdata_running(sdata)) ieee80211_queue_work(&sdata->local->hw, &sdata->work); } --- a/net/mac80211/util.c +++ b/net/mac80211/util.c @@ -767,9 +767,7 @@ static void __iterate_interfaces(struct struct ieee80211_sub_if_data *sdata; bool active_only = iter_flags & IEEE80211_IFACE_ITER_ACTIVE; - list_for_each_entry_rcu(sdata, &local->interfaces, list, - lockdep_is_held(&local->iflist_mtx) || - lockdep_is_held(&local->hw.wiphy->mtx)) { + list_for_each_entry_rcu(sdata, &local->interfaces, list) { switch (sdata->vif.type) { case NL80211_IFTYPE_MONITOR: if (!(sdata->u.mntr.flags & MONITOR_FLAG_ACTIVE)) Patches currently in stable-queue which might be from gregkh@xxxxxxxxxxxxxxxxxxx are queue-6.1/arm64-kconfig-make-sme-depend-on-broken-for-now.patch queue-6.1/media-cx24116-prevent-overflows-on-snr-calculus.patch queue-6.1/ksmbd-fix-slab-use-after-free-in-ksmbd_smb2_session_create.patch queue-6.1/net-vertexcom-mse102x-fix-possible-double-free-of-tx-skb.patch queue-6.1/dm-cache-fix-flushing-uninitialized-delayed_work-on-cache_ctr-error.patch queue-6.1/nfs-fix-kmsan-warning-in-decode_getfattr_attrs.patch queue-6.1/bnxt_re-avoid-shift-undefined-behavior-in-bnxt_qplib_alloc_init_hwq.patch queue-6.1/dm-unstriped-cast-an-operand-to-sector_t-to-prevent-potential-uint32_t-overflow.patch queue-6.1/alsa-usb-audio-add-quirk-for-hp-320-fhd-webcam.patch queue-6.1/mptcp-use-sock_kfree_s-instead-of-kfree.patch queue-6.1/net-wwan-t7xx-fix-off-by-one-error-in-t7xx_dpmaif_rx_buf_alloc.patch queue-6.1/media-pulse8-cec-fix-data-timestamp-at-pulse8_setup.patch queue-6.1/btrfs-reinitialize-delayed-ref-list-after-deleting-it-from-the-list.patch queue-6.1/ksmbd-fix-the-missing-xa_store-error-check.patch queue-6.1/drm-amdgpu-add-missing-size-check-in-amdgpu_debugfs_gprwave_read.patch queue-6.1/dm-cache-correct-the-number-of-origin-blocks-to-match-the-target-length.patch queue-6.1/drm-amdgpu-prevent-null-pointer-dereference-if-atif-is-not-supported.patch queue-6.1/media-v4l2-ctrls-api-fix-error-handling-for-v4l2_g_ctrl.patch queue-6.1/riscv-purgatory-align-riscv_kernel_entry.patch queue-6.1/dm-cache-fix-potential-out-of-bounds-access-on-the-first-resume.patch queue-6.1/can-mcp251xfd-mcp251xfd_get_tef_len-fix-length-calculation.patch queue-6.1/dm-cache-optimize-dirty-bit-checking-with-find_next_bit-when-resizing.patch queue-6.1/can-mcp251xfd-mcp251xfd_ring_alloc-fix-coalescing-configuration-when-switching-can-modes.patch queue-6.1/thermal-drivers-qcom-lmh-remove-false-lockdep-backtrace.patch queue-6.1/net-do-not-delay-dst_entries_add-in-dst_release.patch queue-6.1/dm-cache-fix-out-of-bounds-access-to-the-dirty-bitset-when-resizing.patch queue-6.1/media-v4l2-tpg-prevent-the-risk-of-a-division-by-zero.patch queue-6.1/pwm-imx-tpm-use-correct-modulo-value-for-epwm-mode.patch queue-6.1/drm-amdgpu-adjust-debugfs-eviction-and-ib-access-permissions.patch queue-6.1/media-ar0521-don-t-overflow-when-checking-pll-values.patch queue-6.1/ksmbd-fix-slab-use-after-free-in-smb3_preauth_hash_rsp.patch queue-6.1/revert-wifi-mac80211-fix-rcu-list-iterations.patch queue-6.1/media-s5p-jpeg-prevent-buffer-overflows.patch queue-6.1/alsa-hda-realtek-fix-headset-mic-on-tuxedo-gemini-17-gen3.patch queue-6.1/media-uvcvideo-skip-parsing-frames-of-type-uvc_vs_undefined-in-uvc_parse_format.patch queue-6.1/media-stb0899_algo-initialize-cfr-before-using-it.patch queue-6.1/kselftest-arm64-initialise-current-at-build-time-in-signal-tests.patch queue-6.1/revert-alsa-hda-conexant-mute-speakers-at-suspend-shutdown.patch