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-stable
mailing list