svn commit: r343019 - stable/11/sys/net80211
Andriy Voskoboinyk
avos at FreeBSD.org
Mon Jan 14 07:54:12 UTC 2019
Author: avos
Date: Mon Jan 14 07:54:11 2019
New Revision: 343019
URL: https://svnweb.freebsd.org/changeset/base/343019
Log:
MFC r342883:
net80211: fix panic when device is removed during initialization
if_dead() is called during device detach - check if interface is
still exists before trying to refresh vap MAC address
(IF_LLADDR will trigger page fault otherwise).
Modified:
stable/11/sys/net80211/ieee80211_ioctl.c
Directory Properties:
stable/11/ (props changed)
Modified: stable/11/sys/net80211/ieee80211_ioctl.c
==============================================================================
--- stable/11/sys/net80211/ieee80211_ioctl.c Mon Jan 14 07:50:23 2019 (r343018)
+++ stable/11/sys/net80211/ieee80211_ioctl.c Mon Jan 14 07:54:11 2019 (r343019)
@@ -3394,9 +3394,13 @@ ieee80211_ioctl(struct ifnet *ifp, u_long cmd, caddr_t
/*
* Check if the MAC address was changed
* via SIOCSIFLLADDR ioctl.
+ *
+ * NB: device may be detached during initialization;
+ * use if_ioctl for existence check.
*/
if_addr_rlock(ifp);
- if ((ifp->if_flags & IFF_UP) == 0 &&
+ 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));
More information about the svn-src-stable
mailing list