Skip site navigation (1)Skip section navigation (2)
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>