Tue Jun 5 12:17:18 2018 UTC ()
Fix panic on boot with iwm(4). Advised by nonaka@n.o, thanks.

XXX pullup-8


(knakahara)
diff -r1.78 -r1.79 src/sys/dev/pci/if_iwm.c

cvs diff -r1.78 -r1.79 src/sys/dev/pci/if_iwm.c (expand / switch to context diff)
--- src/sys/dev/pci/if_iwm.c 2018/01/21 18:12:37 1.78
+++ src/sys/dev/pci/if_iwm.c 2018/06/05 12:17:18 1.79
@@ -1,4 +1,4 @@
-/*	$NetBSD: if_iwm.c,v 1.78 2018/01/21 18:12:37 christos Exp $	*/
+/*	$NetBSD: if_iwm.c,v 1.79 2018/06/05 12:17:18 knakahara Exp $	*/
 /*	OpenBSD: if_iwm.c,v 1.148 2016/11/19 21:07:08 stsp Exp	*/
 #define IEEE80211_NO_HT
 /*
@@ -106,7 +106,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: if_iwm.c,v 1.78 2018/01/21 18:12:37 christos Exp $");
+__KERNEL_RCSID(0, "$NetBSD: if_iwm.c,v 1.79 2018/06/05 12:17:18 knakahara Exp $");
 
 #include <sys/param.h>
 #include <sys/conf.h>
@@ -7729,6 +7729,7 @@
 iwm_preinit(struct iwm_softc *sc)
 {
 	struct ieee80211com *ic = &sc->sc_ic;
+	struct ifnet *ifp = IC2IFP(&sc->sc_ic);;
 	int err;
 
 	if (ISSET(sc->sc_flags, IWM_FLAG_ATTACHED))
@@ -7760,6 +7761,7 @@
 	if (sc->sc_nvm.sku_cap_band_52GHz_enable)
 		ic->ic_sup_rates[IEEE80211_MODE_11A] = ieee80211_std_rateset_11a;
 
+	ether_ifdetach(ifp);
 	ieee80211_ifattach(ic);
 
 	ic->ic_node_alloc = iwm_node_alloc;
@@ -8133,7 +8135,7 @@
 #if 0
 	ieee80211_ifattach(ic);
 #else
-	ether_ifattach(ifp, ic->ic_myaddr);	/* XXX */
+	ether_ifattach(ifp, NULL);	/* XXX */
 #endif
 	/* Use common softint-based if_input */
 	ifp->if_percpuq = if_percpuq_create(ifp);