git: 90b6a9ac0c1f - main - LinuxKPI: 802.11: implement mtx support for ieee80211_iterate_interfaces
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Wed, 19 Nov 2025 02:27:30 UTC
The branch main has been updated by bz:
URL: https://cgit.FreeBSD.org/src/commit/?id=90b6a9ac0c1f4333f87f4b172482f40979324d7c
commit 90b6a9ac0c1f4333f87f4b172482f40979324d7c
Author: Bjoern A. Zeeb <bz@FreeBSD.org>
AuthorDate: 2025-11-19 02:18:43 +0000
Commit: Bjoern A. Zeeb <bz@FreeBSD.org>
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;