svn commit: r353427 - head/sys/net80211
Gleb Smirnoff
glebius at FreeBSD.org
Thu Oct 10 23:55:34 UTC 2019
Author: glebius
Date: Thu Oct 10 23:55:33 2019
New Revision: 353427
URL: https://svnweb.freebsd.org/changeset/base/353427
Log:
Don't use if_maddr_rlock() in 802.11, use epoch(9) directly instead.
Modified:
head/sys/net80211/ieee80211_ioctl.c
Modified: head/sys/net80211/ieee80211_ioctl.c
==============================================================================
--- head/sys/net80211/ieee80211_ioctl.c Thu Oct 10 23:54:37 2019 (r353426)
+++ head/sys/net80211/ieee80211_ioctl.c Thu Oct 10 23:55:33 2019 (r353427)
@@ -3583,6 +3583,8 @@ ieee80211_ioctl(struct ifnet *ifp, u_long cmd, caddr_t
IEEE80211_UNLOCK(ic);
/* Wait for parent ioctl handler if it was queued */
if (wait) {
+ struct epoch_tracker et;
+
ieee80211_waitfor_parent(ic);
/*
@@ -3592,13 +3594,13 @@ ieee80211_ioctl(struct ifnet *ifp, u_long cmd, caddr_t
* NB: device may be detached during initialization;
* use if_ioctl for existence check.
*/
- if_addr_rlock(ifp);
+ NET_EPOCH_ENTER(et);
if (ifp->if_ioctl == ieee80211_ioctl &&
(ifp->if_flags & IFF_UP) == 0 &&
!IEEE80211_ADDR_EQ(vap->iv_myaddr, IF_LLADDR(ifp)))
IEEE80211_ADDR_COPY(vap->iv_myaddr,
IF_LLADDR(ifp));
- if_addr_runlock(ifp);
+ NET_EPOCH_EXIT(et);
}
break;
case SIOCADDMULTI:
More information about the svn-src-all
mailing list