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

Reply via email to