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));