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). MFC after: 5 days
This commit is contained in:
parent
985b8e2b12
commit
7071b803da
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=342883
@ -3537,9 +3537,13 @@ ieee80211_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data)
|
||||
/*
|
||||
* 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));
|
||||
|
Loading…
Reference in New Issue
Block a user