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