On Wed, Oct 25, 2017 at 03:41:31PM +0200, Martin Pieuchot wrote: > On 25/10/17(Wed) 15:37, Martin Pieuchot wrote: > > Diff below moves the common code to add/remove multicast filters > > to ieee80211_ioctl(9). Wireless drivers that do things slightly > > differently are left untouched for the moment. > > > > ok? > > Updated diff.
ok jsg@ > > Index: dev/ic/acx.c > =================================================================== > RCS file: /cvs/src/sys/dev/ic/acx.c,v > retrieving revision 1.120 > diff -u -p -r1.120 acx.c > --- dev/ic/acx.c 22 Jan 2017 10:17:37 -0000 1.120 > +++ dev/ic/acx.c 25 Oct 2017 13:31:27 -0000 > @@ -837,7 +837,6 @@ acx_ioctl(struct ifnet *ifp, u_long cmd, > { > struct acx_softc *sc = ifp->if_softc; > struct ieee80211com *ic = &sc->sc_ic; > - struct ifreq *ifr; > int s, error = 0; > uint8_t chan; > > @@ -855,16 +854,6 @@ acx_ioctl(struct ifnet *ifp, u_long cmd, > if (ifp->if_flags & IFF_RUNNING) > error = acx_stop(sc); > } > - break; > - case SIOCADDMULTI: > - case SIOCDELMULTI: > - ifr = (struct ifreq *)data; > - error = (cmd == SIOCADDMULTI) ? > - ether_addmulti(ifr, &ic->ic_ac) : > - ether_delmulti(ifr, &ic->ic_ac); > - > - if (error == ENETRESET) > - error = 0; > break; > case SIOCS80211CHANNEL: > /* allow fast channel switching in monitor mode */ > Index: dev/ic/bwi.c > =================================================================== > RCS file: /cvs/src/sys/dev/ic/bwi.c,v > retrieving revision 1.126 > diff -u -p -r1.126 bwi.c > --- dev/ic/bwi.c 8 Sep 2017 05:36:52 -0000 1.126 > +++ dev/ic/bwi.c 25 Oct 2017 13:31:16 -0000 > @@ -7107,7 +7107,6 @@ bwi_ioctl(struct ifnet *ifp, u_long cmd, > { > struct bwi_softc *sc = ifp->if_softc; > struct ieee80211com *ic = &sc->sc_ic; > - struct ifreq *ifr; > int s, error = 0; > uint8_t chan; > > @@ -7125,16 +7124,6 @@ bwi_ioctl(struct ifnet *ifp, u_long cmd, > if (ifp->if_flags & IFF_RUNNING) > bwi_stop(sc, 1); > } > - break; > - case SIOCADDMULTI: > - case SIOCDELMULTI: > - ifr = (struct ifreq *)data; > - error = (cmd == SIOCADDMULTI) ? > - ether_addmulti(ifr, &ic->ic_ac) : > - ether_delmulti(ifr, &ic->ic_ac); > - > - if (error == ENETRESET) > - error = 0; > break; > case SIOCS80211CHANNEL: > /* allow fast channel switching in monitor mode */ > Index: dev/ic/rtwn.c > =================================================================== > RCS file: /cvs/src/sys/dev/ic/rtwn.c,v > retrieving revision 1.35 > diff -u -p -r1.35 rtwn.c > --- dev/ic/rtwn.c 23 Sep 2017 13:57:41 -0000 1.35 > +++ dev/ic/rtwn.c 25 Oct 2017 13:32:05 -0000 > @@ -1434,7 +1434,6 @@ rtwn_ioctl(struct ifnet *ifp, u_long cmd > { > struct rtwn_softc *sc = ifp->if_softc; > struct ieee80211com *ic = &sc->sc_ic; > - struct ifreq *ifr; > int s, error = 0; > > s = splnet(); > @@ -1462,15 +1461,6 @@ rtwn_ioctl(struct ifnet *ifp, u_long cmd > if (ifp->if_flags & IFF_RUNNING) > rtwn_stop(ifp); > } > - break; > - case SIOCADDMULTI: > - case SIOCDELMULTI: > - ifr = (struct ifreq *)data; > - error = (cmd == SIOCADDMULTI) ? > - ether_addmulti(ifr, &ic->ic_ac) : > - ether_delmulti(ifr, &ic->ic_ac); > - if (error == ENETRESET) > - error = 0; > break; > case SIOCS80211CHANNEL: > error = ieee80211_ioctl(ifp, cmd, data); > Index: dev/ic/malo.c > =================================================================== > RCS file: /cvs/src/sys/dev/ic/malo.c,v > retrieving revision 1.115 > diff -u -p -r1.115 malo.c > --- dev/ic/malo.c 8 Sep 2017 05:36:52 -0000 1.115 > +++ dev/ic/malo.c 25 Oct 2017 13:31:09 -0000 > @@ -933,7 +933,6 @@ malo_ioctl(struct ifnet *ifp, u_long cmd > { > struct malo_softc *sc = ifp->if_softc; > struct ieee80211com *ic = &sc->sc_ic; > - struct ifreq *ifr; > int s, error = 0; > uint8_t chan; > > @@ -951,16 +950,6 @@ malo_ioctl(struct ifnet *ifp, u_long cmd > if (ifp->if_flags & IFF_RUNNING) > malo_stop(sc); > } > - break; > - case SIOCADDMULTI: > - case SIOCDELMULTI: > - ifr = (struct ifreq *)data; > - error = (cmd == SIOCADDMULTI) ? > - ether_addmulti(ifr, &ic->ic_ac) : > - ether_delmulti(ifr, &ic->ic_ac); > - > - if (error == ENETRESET) > - error = 0; > break; > case SIOCS80211CHANNEL: > /* allow fast channel switching in monitor mode */ > Index: dev/ic/pgt.c > =================================================================== > RCS file: /cvs/src/sys/dev/ic/pgt.c,v > retrieving revision 1.89 > diff -u -p -r1.89 pgt.c > --- dev/ic/pgt.c 22 Jan 2017 10:17:38 -0000 1.89 > +++ dev/ic/pgt.c 25 Oct 2017 13:24:41 -0000 > @@ -2362,15 +2362,6 @@ pgt_ioctl(struct ifnet *ifp, u_long cmd, > } > } > break; > - case SIOCADDMULTI: > - case SIOCDELMULTI: > - error = (cmd == SIOCADDMULTI) ? > - ether_addmulti(ifr, &ic->ic_ac) : > - ether_delmulti(ifr, &ic->ic_ac); > - > - if (error == ENETRESET) > - error = 0; > - break; > case SIOCSIFMTU: > if (ifr->ifr_mtu > PGT_FRAG_SIZE) { > error = EINVAL; > Index: dev/ic/rt2560.c > =================================================================== > RCS file: /cvs/src/sys/dev/ic/rt2560.c,v > retrieving revision 1.83 > diff -u -p -r1.83 rt2560.c > --- dev/ic/rt2560.c 3 Jul 2017 09:21:09 -0000 1.83 > +++ dev/ic/rt2560.c 25 Oct 2017 13:31:38 -0000 > @@ -2011,7 +2011,6 @@ rt2560_ioctl(struct ifnet *ifp, u_long c > { > struct rt2560_softc *sc = ifp->if_softc; > struct ieee80211com *ic = &sc->sc_ic; > - struct ifreq *ifr; > int s, error = 0; > > s = splnet(); > @@ -2030,17 +2029,6 @@ rt2560_ioctl(struct ifnet *ifp, u_long c > if (ifp->if_flags & IFF_RUNNING) > rt2560_stop(ifp, 1); > } > - break; > - > - case SIOCADDMULTI: > - case SIOCDELMULTI: > - ifr = (struct ifreq *)data; > - error = (cmd == SIOCADDMULTI) ? > - ether_addmulti(ifr, &ic->ic_ac) : > - ether_delmulti(ifr, &ic->ic_ac); > - > - if (error == ENETRESET) > - error = 0; > break; > > case SIOCS80211CHANNEL: > Index: dev/ic/rt2661.c > =================================================================== > RCS file: /cvs/src/sys/dev/ic/rt2661.c,v > retrieving revision 1.93 > diff -u -p -r1.93 rt2661.c > --- dev/ic/rt2661.c 12 Aug 2017 14:09:46 -0000 1.93 > +++ dev/ic/rt2661.c 25 Oct 2017 13:31:49 -0000 > @@ -2006,7 +2006,6 @@ rt2661_ioctl(struct ifnet *ifp, u_long c > { > struct rt2661_softc *sc = ifp->if_softc; > struct ieee80211com *ic = &sc->sc_ic; > - struct ifreq *ifr; > int s, error = 0; > > s = splnet(); > @@ -2025,17 +2024,6 @@ rt2661_ioctl(struct ifnet *ifp, u_long c > if (ifp->if_flags & IFF_RUNNING) > rt2661_stop(ifp, 1); > } > - break; > - > - case SIOCADDMULTI: > - case SIOCDELMULTI: > - ifr = (struct ifreq *)data; > - error = (cmd == SIOCADDMULTI) ? > - ether_addmulti(ifr, &ic->ic_ac) : > - ether_delmulti(ifr, &ic->ic_ac); > - > - if (error == ENETRESET) > - error = 0; > break; > > case SIOCS80211CHANNEL: > Index: dev/ic/rt2860.c > =================================================================== > RCS file: /cvs/src/sys/dev/ic/rt2860.c,v > retrieving revision 1.94 > diff -u -p -r1.94 rt2860.c > --- dev/ic/rt2860.c 3 Jul 2017 09:21:09 -0000 1.94 > +++ dev/ic/rt2860.c 25 Oct 2017 13:32:15 -0000 > @@ -1778,7 +1778,6 @@ rt2860_ioctl(struct ifnet *ifp, u_long c > { > struct rt2860_softc *sc = ifp->if_softc; > struct ieee80211com *ic = &sc->sc_ic; > - struct ifreq *ifr; > int s, error = 0; > > s = splnet(); > @@ -1795,17 +1794,6 @@ rt2860_ioctl(struct ifnet *ifp, u_long c > if (ifp->if_flags & IFF_RUNNING) > rt2860_stop(ifp, 1); > } > - break; > - > - case SIOCADDMULTI: > - case SIOCDELMULTI: > - ifr = (struct ifreq *)data; > - error = (cmd == SIOCADDMULTI) ? > - ether_addmulti(ifr, &ic->ic_ac) : > - ether_delmulti(ifr, &ic->ic_ac); > - > - if (error == ENETRESET) > - error = 0; > break; > > case SIOCS80211CHANNEL: > Index: dev/pci/if_iwm.c > =================================================================== > RCS file: /cvs/src/sys/dev/pci/if_iwm.c,v > retrieving revision 1.216 > diff -u -p -r1.216 if_iwm.c > --- dev/pci/if_iwm.c 22 Oct 2017 09:55:02 -0000 1.216 > +++ dev/pci/if_iwm.c 25 Oct 2017 13:30:27 -0000 > @@ -6650,8 +6650,6 @@ int > iwm_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data) > { > struct iwm_softc *sc = ifp->if_softc; > - struct ieee80211com *ic = &sc->sc_ic; > - struct ifreq *ifr; > int s, err = 0, generation = sc->sc_generation; > > /* > @@ -6680,16 +6678,6 @@ iwm_ioctl(struct ifnet *ifp, u_long cmd, > if (ifp->if_flags & IFF_RUNNING) > iwm_stop(ifp); > } > - break; > - > - case SIOCADDMULTI: > - case SIOCDELMULTI: > - ifr = (struct ifreq *)data; > - err = (cmd == SIOCADDMULTI) ? > - ether_addmulti(ifr, &ic->ic_ac) : > - ether_delmulti(ifr, &ic->ic_ac); > - if (err == ENETRESET) > - err = 0; > break; > > default: > Index: dev/pci/if_iwi.c > =================================================================== > RCS file: /cvs/src/sys/dev/pci/if_iwi.c,v > retrieving revision 1.136 > diff -u -p -r1.136 if_iwi.c > --- dev/pci/if_iwi.c 29 Mar 2017 16:42:25 -0000 1.136 > +++ dev/pci/if_iwi.c 25 Oct 2017 13:30:51 -0000 > @@ -1445,8 +1445,6 @@ int > iwi_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data) > { > struct iwi_softc *sc = ifp->if_softc; > - struct ieee80211com *ic = &sc->sc_ic; > - struct ifreq *ifr; > int s, error = 0; > > error = rw_enter(&sc->sc_rwlock, RW_WRITE | RW_INTR); > @@ -1466,17 +1464,6 @@ iwi_ioctl(struct ifnet *ifp, u_long cmd, > if (ifp->if_flags & IFF_RUNNING) > iwi_stop(ifp, 1); > } > - break; > - > - case SIOCADDMULTI: > - case SIOCDELMULTI: > - ifr = (struct ifreq *)data; > - error = (cmd == SIOCADDMULTI) ? > - ether_addmulti(ifr, &ic->ic_ac) : > - ether_delmulti(ifr, &ic->ic_ac); > - > - if (error == ENETRESET) > - error = 0; > break; > > case SIOCG80211TXPOWER: > Index: dev/pci/if_iwn.c > =================================================================== > RCS file: /cvs/src/sys/dev/pci/if_iwn.c,v > retrieving revision 1.193 > diff -u -p -r1.193 if_iwn.c > --- dev/pci/if_iwn.c 28 Sep 2017 16:17:30 -0000 1.193 > +++ dev/pci/if_iwn.c 25 Oct 2017 13:30:37 -0000 > @@ -3281,7 +3281,6 @@ iwn_ioctl(struct ifnet *ifp, u_long cmd, > { > struct iwn_softc *sc = ifp->if_softc; > struct ieee80211com *ic = &sc->sc_ic; > - struct ifreq *ifr; > int s, error = 0; > > error = rw_enter(&sc->sc_rwlock, RW_WRITE | RW_INTR); > @@ -3301,17 +3300,6 @@ iwn_ioctl(struct ifnet *ifp, u_long cmd, > if (ifp->if_flags & IFF_RUNNING) > iwn_stop(ifp, 1); > } > - break; > - > - case SIOCADDMULTI: > - case SIOCDELMULTI: > - ifr = (struct ifreq *)data; > - error = (cmd == SIOCADDMULTI) ? > - ether_addmulti(ifr, &ic->ic_ac) : > - ether_delmulti(ifr, &ic->ic_ac); > - > - if (error == ENETRESET) > - error = 0; > break; > > case SIOCS80211POWER: > Index: dev/pci/if_wpi.c > =================================================================== > RCS file: /cvs/src/sys/dev/pci/if_wpi.c,v > retrieving revision 1.140 > diff -u -p -r1.140 if_wpi.c > --- dev/pci/if_wpi.c 8 Apr 2017 02:57:25 -0000 1.140 > +++ dev/pci/if_wpi.c 25 Oct 2017 13:30:57 -0000 > @@ -1968,7 +1968,6 @@ wpi_ioctl(struct ifnet *ifp, u_long cmd, > { > struct wpi_softc *sc = ifp->if_softc; > struct ieee80211com *ic = &sc->sc_ic; > - struct ifreq *ifr; > int s, error = 0; > > error = rw_enter(&sc->sc_rwlock, RW_WRITE | RW_INTR); > @@ -1988,17 +1987,6 @@ wpi_ioctl(struct ifnet *ifp, u_long cmd, > if (ifp->if_flags & IFF_RUNNING) > wpi_stop(ifp, 1); > } > - break; > - > - case SIOCADDMULTI: > - case SIOCDELMULTI: > - ifr = (struct ifreq *)data; > - error = (cmd == SIOCADDMULTI) ? > - ether_addmulti(ifr, &ic->ic_ac) : > - ether_delmulti(ifr, &ic->ic_ac); > - > - if (error == ENETRESET) > - error = 0; > break; > > case SIOCS80211POWER: > Index: dev/pci/if_ipw.c > =================================================================== > RCS file: /cvs/src/sys/dev/pci/if_ipw.c,v > retrieving revision 1.120 > diff -u -p -r1.120 if_ipw.c > --- dev/pci/if_ipw.c 8 Mar 2017 12:02:41 -0000 1.120 > +++ dev/pci/if_ipw.c 25 Oct 2017 13:38:56 -0000 > @@ -1348,8 +1348,6 @@ int > ipw_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data) > { > struct ipw_softc *sc = ifp->if_softc; > - struct ieee80211com *ic = &sc->sc_ic; > - struct ifreq *ifr; > int s, error = 0; > > error = rw_enter(&sc->sc_rwlock, RW_WRITE | RW_INTR); > @@ -1369,17 +1367,6 @@ ipw_ioctl(struct ifnet *ifp, u_long cmd, > if (ifp->if_flags & IFF_RUNNING) > ipw_stop(ifp, 1); > } > - break; > - > - case SIOCADDMULTI: > - case SIOCDELMULTI: > - ifr = (struct ifreq *)data; > - error = (cmd == SIOCADDMULTI) ? > - ether_addmulti(ifr, &ic->ic_ac) : > - ether_delmulti(ifr, &ic->ic_ac); > - > - if (error == ENETRESET) > - error = 0; > break; > > case SIOCG80211TXPOWER: > Index: dev/pcmcia/if_malo.c > =================================================================== > RCS file: /cvs/src/sys/dev/pcmcia/if_malo.c,v > retrieving revision 1.92 > diff -u -p -r1.92 if_malo.c > --- dev/pcmcia/if_malo.c 22 Jan 2017 10:17:39 -0000 1.92 > +++ dev/pcmcia/if_malo.c 25 Oct 2017 13:30:09 -0000 > @@ -362,10 +362,8 @@ int > cmalo_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data) > { > struct malo_softc *sc = ifp->if_softc; > - struct ieee80211com *ic = &sc->sc_ic; > struct ieee80211_nodereq_all *na; > struct ieee80211_nodereq *nr; > - struct ifreq *ifr; > int i, j, s, error = 0; > > s = splnet(); > @@ -393,15 +391,6 @@ cmalo_ioctl(struct ifnet *ifp, u_long cm > if (ifp->if_flags & IFF_RUNNING) > cmalo_stop(sc); > } > - break; > - case SIOCADDMULTI: > - case SIOCDELMULTI: > - ifr = (struct ifreq *)data; > - error = (cmd == SIOCADDMULTI) ? > - ether_addmulti(ifr, &ic->ic_ac) : > - ether_delmulti(ifr, &ic->ic_ac); > - if (error == ENETRESET) > - error = 0; > break; > case SIOCS80211SCAN: > cmalo_cmd_set_scan(sc); > Index: dev/usb/if_athn_usb.c > =================================================================== > RCS file: /cvs/src/sys/dev/usb/if_athn_usb.c,v > retrieving revision 1.47 > diff -u -p -r1.47 if_athn_usb.c > --- dev/usb/if_athn_usb.c 8 Apr 2017 02:57:25 -0000 1.47 > +++ dev/usb/if_athn_usb.c 25 Oct 2017 13:29:23 -0000 > @@ -2121,7 +2121,6 @@ athn_usb_ioctl(struct ifnet *ifp, u_long > struct athn_softc *sc = ifp->if_softc; > struct athn_usb_softc *usc = (struct athn_usb_softc *)sc; > struct ieee80211com *ic = &sc->sc_ic; > - struct ifreq *ifr; > int s, error = 0; > > if (usbd_is_dying(usc->sc_udev)) > @@ -2143,15 +2142,6 @@ athn_usb_ioctl(struct ifnet *ifp, u_long > if (ifp->if_flags & IFF_RUNNING) > athn_usb_stop(ifp); > } > - break; > - case SIOCADDMULTI: > - case SIOCDELMULTI: > - ifr = (struct ifreq *)data; > - error = (cmd == SIOCADDMULTI) ? > - ether_addmulti(ifr, &ic->ic_ac) : > - ether_delmulti(ifr, &ic->ic_ac); > - if (error == ENETRESET) > - error = 0; > break; > case SIOCS80211CHANNEL: > error = ieee80211_ioctl(ifp, cmd, data); > Index: dev/usb/if_ral.c > =================================================================== > RCS file: /cvs/src/sys/dev/usb/if_ral.c,v > retrieving revision 1.143 > diff -u -p -r1.143 if_ral.c > --- dev/usb/if_ral.c 3 Jul 2017 09:21:09 -0000 1.143 > +++ dev/usb/if_ral.c 25 Oct 2017 13:30:16 -0000 > @@ -1299,7 +1299,6 @@ ural_ioctl(struct ifnet *ifp, u_long cmd > { > struct ural_softc *sc = ifp->if_softc; > struct ieee80211com *ic = &sc->sc_ic; > - struct ifreq *ifr; > int s, error = 0; > > if (usbd_is_dying(sc->sc_udev)) > @@ -1323,17 +1322,6 @@ ural_ioctl(struct ifnet *ifp, u_long cmd > if (ifp->if_flags & IFF_RUNNING) > ural_stop(ifp, 1); > } > - break; > - > - case SIOCADDMULTI: > - case SIOCDELMULTI: > - ifr = (struct ifreq *)data; > - error = (cmd == SIOCADDMULTI) ? > - ether_addmulti(ifr, &ic->ic_ac) : > - ether_delmulti(ifr, &ic->ic_ac); > - > - if (error == ENETRESET) > - error = 0; > break; > > case SIOCS80211CHANNEL: > Index: dev/usb/if_otus.c > =================================================================== > RCS file: /cvs/src/sys/dev/usb/if_otus.c,v > retrieving revision 1.59 > diff -u -p -r1.59 if_otus.c > --- dev/usb/if_otus.c 20 Jul 2017 22:29:26 -0000 1.59 > +++ dev/usb/if_otus.c 25 Oct 2017 13:28:02 -0000 > @@ -1469,7 +1469,6 @@ otus_ioctl(struct ifnet *ifp, u_long cmd > { > struct otus_softc *sc = ifp->if_softc; > struct ieee80211com *ic = &sc->sc_ic; > - struct ifreq *ifr; > int s, error = 0; > > if (usbd_is_dying(sc->sc_udev)) > @@ -1496,15 +1495,6 @@ otus_ioctl(struct ifnet *ifp, u_long cmd > otus_stop(ifp); > > sc->sc_if_flags = ifp->if_flags; > - break; > - case SIOCADDMULTI: > - case SIOCDELMULTI: > - ifr = (struct ifreq *)data; > - error = (cmd == SIOCADDMULTI) ? > - ether_addmulti(ifr, &ic->ic_ac) : > - ether_delmulti(ifr, &ic->ic_ac); > - if (error == ENETRESET) > - error = 0; > break; > case SIOCS80211CHANNEL: > error = ieee80211_ioctl(ifp, cmd, data); > Index: dev/usb/if_rsu.c > =================================================================== > RCS file: /cvs/src/sys/dev/usb/if_rsu.c,v > retrieving revision 1.40 > diff -u -p -r1.40 if_rsu.c > --- dev/usb/if_rsu.c 21 Jul 2017 13:15:05 -0000 1.40 > +++ dev/usb/if_rsu.c 25 Oct 2017 13:28:21 -0000 > @@ -1674,8 +1674,6 @@ int > rsu_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data) > { > struct rsu_softc *sc = ifp->if_softc; > - struct ieee80211com *ic = &sc->sc_ic; > - struct ifreq *ifr; > int s, error = 0; > > if (usbd_is_dying(sc->sc_udev)) > @@ -1697,15 +1695,6 @@ rsu_ioctl(struct ifnet *ifp, u_long cmd, > if (ifp->if_flags & IFF_RUNNING) > rsu_stop(ifp); > } > - break; > - case SIOCADDMULTI: > - case SIOCDELMULTI: > - ifr = (struct ifreq *)data; > - error = (cmd == SIOCADDMULTI) ? > - ether_addmulti(ifr, &ic->ic_ac) : > - ether_delmulti(ifr, &ic->ic_ac); > - if (error == ENETRESET) > - error = 0; > break; > default: > error = ieee80211_ioctl(ifp, cmd, data); > Index: dev/usb/if_rum.c > =================================================================== > RCS file: /cvs/src/sys/dev/usb/if_rum.c,v > retrieving revision 1.122 > diff -u -p -r1.122 if_rum.c > --- dev/usb/if_rum.c 3 Jul 2017 09:21:09 -0000 1.122 > +++ dev/usb/if_rum.c 25 Oct 2017 13:29:48 -0000 > @@ -1306,7 +1306,6 @@ rum_ioctl(struct ifnet *ifp, u_long cmd, > { > struct rum_softc *sc = ifp->if_softc; > struct ieee80211com *ic = &sc->sc_ic; > - struct ifreq *ifr; > int s, error = 0; > > if (usbd_is_dying(sc->sc_udev)) > @@ -1330,17 +1329,6 @@ rum_ioctl(struct ifnet *ifp, u_long cmd, > if (ifp->if_flags & IFF_RUNNING) > rum_stop(ifp, 1); > } > - break; > - > - case SIOCADDMULTI: > - case SIOCDELMULTI: > - ifr = (struct ifreq *)data; > - error = (cmd == SIOCADDMULTI) ? > - ether_addmulti(ifr, &ic->ic_ac) : > - ether_delmulti(ifr, &ic->ic_ac); > - > - if (error == ENETRESET) > - error = 0; > break; > > case SIOCS80211CHANNEL: > Index: dev/usb/if_uath.c > =================================================================== > RCS file: /cvs/src/sys/dev/usb/if_uath.c,v > retrieving revision 1.81 > diff -u -p -r1.81 if_uath.c > --- dev/usb/if_uath.c 28 Jul 2017 10:50:56 -0000 1.81 > +++ dev/usb/if_uath.c 25 Oct 2017 13:28:46 -0000 > @@ -1532,9 +1532,6 @@ uath_watchdog(struct ifnet *ifp) > int > uath_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data) > { > - struct uath_softc *sc = ifp->if_softc; > - struct ieee80211com *ic = &sc->sc_ic; > - struct ifreq *ifr; > int s, error = 0; > > s = splnet(); > @@ -1551,16 +1548,6 @@ uath_ioctl(struct ifnet *ifp, u_long cmd > if (ifp->if_flags & IFF_RUNNING) > uath_stop(ifp, 1); > } > - break; > - > - case SIOCADDMULTI: > - case SIOCDELMULTI: > - ifr = (struct ifreq *)data; > - error = (cmd == SIOCADDMULTI) ? > - ether_addmulti(ifr, &ic->ic_ac) : > - ether_delmulti(ifr, &ic->ic_ac); > - if (error == ENETRESET) > - error = 0; > break; > > default: > Index: dev/usb/if_run.c > =================================================================== > RCS file: /cvs/src/sys/dev/usb/if_run.c,v > retrieving revision 1.123 > diff -u -p -r1.123 if_run.c > --- dev/usb/if_run.c 14 Aug 2017 05:52:21 -0000 1.123 > +++ dev/usb/if_run.c 25 Oct 2017 13:29:36 -0000 > @@ -2593,7 +2593,6 @@ run_ioctl(struct ifnet *ifp, u_long cmd, > { > struct run_softc *sc = ifp->if_softc; > struct ieee80211com *ic = &sc->sc_ic; > - struct ifreq *ifr; > int s, error = 0; > > if (usbd_is_dying(sc->sc_udev)) > @@ -2615,17 +2614,6 @@ run_ioctl(struct ifnet *ifp, u_long cmd, > if (ifp->if_flags & IFF_RUNNING) > run_stop(ifp, 1); > } > - break; > - > - case SIOCADDMULTI: > - case SIOCDELMULTI: > - ifr = (struct ifreq *)data; > - error = (cmd == SIOCADDMULTI) ? > - ether_addmulti(ifr, &ic->ic_ac) : > - ether_delmulti(ifr, &ic->ic_ac); > - > - if (error == ENETRESET) > - error = 0; > break; > > case SIOCS80211CHANNEL: > Index: dev/usb/if_upgt.c > =================================================================== > RCS file: /cvs/src/sys/dev/usb/if_upgt.c,v > retrieving revision 1.80 > diff -u -p -r1.80 if_upgt.c > --- dev/usb/if_upgt.c 26 Mar 2017 15:31:15 -0000 1.80 > +++ dev/usb/if_upgt.c 25 Oct 2017 13:29:09 -0000 > @@ -1126,7 +1126,6 @@ upgt_ioctl(struct ifnet *ifp, u_long cmd > { > struct upgt_softc *sc = ifp->if_softc; > struct ieee80211com *ic = &sc->sc_ic; > - struct ifreq *ifr; > int s, error = 0; > uint8_t chan; > > @@ -1144,15 +1143,6 @@ upgt_ioctl(struct ifnet *ifp, u_long cmd > if (ifp->if_flags & IFF_RUNNING) > upgt_stop(sc); > } > - break; > - case SIOCADDMULTI: > - case SIOCDELMULTI: > - ifr = (struct ifreq *)data; > - error = (cmd == SIOCADDMULTI) ? > - ether_addmulti(ifr, &ic->ic_ac) : > - ether_delmulti(ifr, &ic->ic_ac); > - if (error == ENETRESET) > - error = 0; > break; > case SIOCS80211CHANNEL: > /* allow fast channel switching in monitor mode */ > Index: net80211/ieee80211_ioctl.c > =================================================================== > RCS file: /cvs/src/sys/net80211/ieee80211_ioctl.c,v > retrieving revision 1.53 > diff -u -p -r1.53 ieee80211_ioctl.c > --- net80211/ieee80211_ioctl.c 19 Jul 2017 22:04:46 -0000 1.53 > +++ net80211/ieee80211_ioctl.c 25 Oct 2017 13:22:54 -0000 > @@ -841,6 +841,14 @@ ieee80211_ioctl(struct ifnet *ifp, u_lon > ic->ic_flags = (ic->ic_flags & ~IEEE80211_F_USERMASK) | flags; > error = ENETRESET; > break; > + case SIOCADDMULTI: > + case SIOCDELMULTI: > + error = (cmd == SIOCADDMULTI) ? > + ether_addmulti(ifr, &ic->ic_ac) : > + ether_delmulti(ifr, &ic->ic_ac); > + if (error == ENETRESET) > + error = 0; > + break; > default: > error = ether_ioctl(ifp, &ic->ic_ac, cmd, data); > } >