This matches what all other wifi drivers seem to be doing.
ifconfig iwm0 lladdr random still works.
ok?
Index: if_iwm.c
===================================================================
RCS file: /cvs/src/sys/dev/pci/if_iwm.c,v
retrieving revision 1.52
diff -u -p -r1.52 if_iwm.c
--- if_iwm.c 5 Oct 2015 13:05:08 -0000 1.52
+++ if_iwm.c 5 Oct 2015 20:53:23 -0000
@@ -5729,11 +5729,6 @@ iwm_ioctl(struct ifnet *ifp, u_long cmd,
error = 0;
break;
- case SIOCSIFLLADDR:
- IEEE80211_ADDR_COPY(sc->sc_ic.ic_myaddr,
- ((struct arpcom *)ifp)->ac_enaddr);
- break;
-
default:
error = ieee80211_ioctl(ifp, cmd, data);
}
@@ -6323,8 +6318,12 @@ iwm_preinit(struct iwm_softc *sc)
return error;
}
- if (attached)
+ if (attached) {
+ /* Update MAC in case the upper layers changed it. */
+ IEEE80211_ADDR_COPY(sc->sc_ic.ic_myaddr,
+ ((struct arpcom *)ifp)->ac_enaddr);
return 0;
+ }
if ((error = iwm_start_hw(sc)) != 0) {
printf("%s: could not initialize hardware\n", DEVNAME(sc));