svn commit: r332288 - in stable/11/sys: dev/an dev/ath dev/cxgbe dev/de dev/en dev/fatm dev/hatm dev/if_ndis dev/iwi dev/ixgbe dev/ixl dev/mlx4/mlx4_en dev/mlx5/mlx5_en dev/mwl dev/nxge dev/oce dev...

Warner Losh imp at bsdimp.com
Mon Apr 9 15:11:46 UTC 2018


On Mon, Apr 9, 2018 at 7:58 AM, Glen Barber <gjb at freebsd.org> wrote:

> On Sun, Apr 08, 2018 at 04:54:07PM +0000, Brooks Davis wrote:
> > Author: brooks
> > Date: Sun Apr  8 16:54:07 2018
> > New Revision: 332288
> > URL: https://svnweb.freebsd.org/changeset/base/332288
> >
> > Log:
> >   MFC r331797:
> >
> >   Use an accessor function to access ifr_data.
> >
> >   This fixes 32-bit compat (no ioctl command defintions are required
> >   as struct ifreq is the same size).
> >
> >   Reviewed by:        kib
> >   Obtained from:      CheriBSD
> >   Sponsored by:       DARPA, AFRL
> >   Differential Revision:      https://reviews.freebsd.org/D14900
> >
> > Modified:
> [...]
> >   stable/11/sys/dev/wl/if_wl.c
>
> > Directory Properties:
> >   stable/11/   (props changed)
> >
> [...]
> > Modified: stable/11/sys/dev/wl/if_wl.c
> > ============================================================
> ==================
> > --- stable/11/sys/dev/wl/if_wl.c      Sun Apr  8 16:46:24 2018
> (r332287)
> > +++ stable/11/sys/dev/wl/if_wl.c      Sun Apr  8 16:54:07 2018
> (r332288)
> > @@ -1313,7 +1313,7 @@ wlioctl(struct ifnet *ifp, u_long cmd, caddr_t
> data)
> >       }
> >       WL_UNLOCK(sc);
> >
> > -     error = copyout(psa_buf, ifr->ifr_data, sizeof(psa_buf));
> > +     error = copyout(psa_buf, ifr_data_get_ptr(ifr), sizeof(psa_buf));
> >       break;
> >
> >
> > @@ -1323,7 +1323,7 @@ wlioctl(struct ifnet *ifp, u_long cmd, caddr_t
> data)
> >       if ((error = priv_check(td, PRIV_DRIVER)))
> >           break;
> >
> > -     error = copyin(ifr->ifr_data, psa_buf, sizeof(psa_buf));
> > +     error = copyin(ifr_data_get_ptr(ifr), psa_buf, sizeof(psa_buf));
> >       if (error)
> >           break;
> >
> > @@ -1357,7 +1357,7 @@ wlioctl(struct ifnet *ifp, u_long cmd, caddr_t
> data)
> >       /* get the current NWID out of the sc since we stored it there */
> >      case SIOCGWLCNWID:
> >       WL_LOCK(sc);
> > -     ifr->ifr_data = (caddr_t) (sc->nwid[0] << 8 | sc->nwid[1]);
> > +     ifr_data_get_ptr(ifr) = (caddr_t) (sc->nwid[0] << 8 | sc->nwid[1]);
> >       WL_UNLOCK(sc);
> >       break;
> >
>
> This part of the change appears to have broken i386 with the following:
>
>  /usr/src/sys/modules/wl/../../dev/wl/if_wl.c:1360:24: error: expression
> is not assignable
>          ifr_data_get_ptr(ifr) = (caddr_t) (sc->nwid[0] << 8 |
> sc->nwid[1]);
>         ~~~~~~~~~~~~~~~~~~~~~ ^
>  1 error generated.
>  --- if_wl.o ---
>  *** [if_wl.o] Error code 1
>
>  make[4]: stopped in /usr/src/sys/modules/wl
>  1 error
>

wl has been removed in -current.  It's pre-802.11 ISA card with thin market
penetration. I would be shocked if anybody has run this on a FreeBSD system
> 4.x.

Warner


More information about the svn-src-all mailing list