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

Reply via email to