Date: Fri, 12 Aug 2016 11:01:25 -0700 From: Adrian Chadd <adrian@freebsd.org> To: David Wolfskill <david@catwhisker.org>, FreeBSD Net <freebsd-net@freebsd.org>, Andriy Voskoboinyk <avos@freebsd.org> Subject: Re: Panic in stable/11 (amd64) @r303903: page fault while in kernel mode Message-ID: <CAJ-VmonWWjHy9sDzU_rRTHErkF26WWN_xOn2qyX-sJEOOjX4=w@mail.gmail.com> In-Reply-To: <CAJ-Vmo=cnZvrT=c12xhOPHNtc%2Bs-02LBCvvxy8ENv157Qh4zTQ@mail.gmail.com> References: <20160810165458.GB1112@albert.catwhisker.org> <570bda1e-d4d7-42dc-6037-7c321ba9e97d@FreeBSD.org> <CAJ-Vmon6Rak07ux%2BZX8ySnxkgn5Sv9Jtcus4SSv=J_sXTWQ%2BgQ@mail.gmail.com> <20160811234250.GC1112@albert.catwhisker.org> <CAJ-VmonLmpgV1Max-V2nZ5wi-RSa6rQ2QGaMQf6GO%2BS3XEF05g@mail.gmail.com> <20160812023744.GE1112@albert.catwhisker.org> <CAJ-Vmo=cnZvrT=c12xhOPHNtc%2Bs-02LBCvvxy8ENv157Qh4zTQ@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
David, Totally untested; will need manual application as I bet this patch is mangled. Would you mind testing this? I have a feeling we need to add if_addr lock calls in a few places. Thanks, -adrian Index: sys/net80211/ieee80211_ioctl.c =================================================================== --- sys/net80211/ieee80211_ioctl.c (revision 303738) +++ sys/net80211/ieee80211_ioctl.c (working copy) @@ -3389,15 +3389,16 @@ /* Wait for parent ioctl handler if it was queued */ if (wait) { ieee80211_waitfor_parent(ic); - /* * Check if the MAC address was changed * via SIOCSIFLLADDR ioctl. */ + if_addr_rlock(ifp); if ((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); } break; case SIOCADDMULTI:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAJ-VmonWWjHy9sDzU_rRTHErkF26WWN_xOn2qyX-sJEOOjX4=w>