The branch main has been updated by bz:

URL: 
https://cgit.FreeBSD.org/src/commit/?id=90b6a9ac0c1f4333f87f4b172482f40979324d7c

commit 90b6a9ac0c1f4333f87f4b172482f40979324d7c
Author:     Bjoern A. Zeeb <[email protected]>
AuthorDate: 2025-11-19 02:18:43 +0000
Commit:     Bjoern A. Zeeb <[email protected]>
CommitDate: 2025-11-19 02:25:38 +0000

    LinuxKPI: 802.11: implement mtx support for ieee80211_iterate_interfaces
    
    Implement the lockdep_assert_wiphy call for
    ieee80211_iterate_active_interfaces_mtx() to avoid a warning when
    used and to make sure callers comply with assumptions.
    
    Leave an "IMPROVE" note as we can likely switch another of the multiple
    callers to RCU.
    
    Sponsored by:   The FreeBSD Foundation
    MFC after:      3 days
---
 sys/compat/linuxkpi/common/src/linux_80211.c | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/sys/compat/linuxkpi/common/src/linux_80211.c 
b/sys/compat/linuxkpi/common/src/linux_80211.c
index f025f191a3bd..c68ed4491c3b 100644
--- a/sys/compat/linuxkpi/common/src/linux_80211.c
+++ b/sys/compat/linuxkpi/common/src/linux_80211.c
@@ -6906,17 +6906,23 @@ linuxkpi_ieee80211_iterate_interfaces(struct 
ieee80211_hw *hw,
        if (flags & ~(IEEE80211_IFACE_ITER_NORMAL|
            IEEE80211_IFACE_ITER_RESUME_ALL|
            IEEE80211_IFACE_SKIP_SDATA_NOT_IN_DRIVER|
-           IEEE80211_IFACE_ITER_ACTIVE|IEEE80211_IFACE_ITER__ATOMIC)) {
+           IEEE80211_IFACE_ITER_ACTIVE|IEEE80211_IFACE_ITER__ATOMIC|
+           IEEE80211_IFACE_ITER__MTX)) {
                ic_printf(lhw->ic, "XXX TODO %s flags(%#x) not yet 
supported.\n",
                    __func__, flags);
        }
 
+       if ((flags & IEEE80211_IFACE_ITER__MTX) != 0)
+               lockdep_assert_wiphy(hw->wiphy);
+
        active = (flags & IEEE80211_IFACE_ITER_ACTIVE) != 0;
        atomic = (flags & IEEE80211_IFACE_ITER__ATOMIC) != 0;
        nin_drv = (flags & IEEE80211_IFACE_SKIP_SDATA_NOT_IN_DRIVER) != 0;
 
-       if (atomic)
+       if (atomic) {
+               IMPROVE("LKPI_80211_LHW_LVIF_LOCK atomic assume to be rcu?");
                LKPI_80211_LHW_LVIF_LOCK(lhw);
+       }
        TAILQ_FOREACH(lvif, &lhw->lvif_head, lvif_entry) {
                struct ieee80211vap *vap;
 

Reply via email to