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