if_wi.c and devd

Sam Leffler sam at errno.com
Tue Aug 9 04:21:22 GMT 2005


Robert C. Noland III wrote:
> Since the recent changes to devd matching removable interfaces by media
> type rather than interface name, inserting my wi card didn't do
> anything.  I would have to either manually configure it,
> or /etc/rc.d/netif start wi0.
> 
> Anyway, it seems that in if_wi.c (at least if I am reading this
> correctly) we only set imr->ifm_status = IFM_AVALID if the interface is
> UP.  Does the following patch produce some unforseen evil?  It does make
> devd happy...
> 
> --- if_wi.c.orig        Mon Aug  8 20:24:14 2005
> +++ if_wi.c     Mon Aug  8 20:54:21 2005
> @@ -1259,7 +1259,7 @@
>         u_int16_t val;
>         int rate, len;
> 
> -       if (sc->wi_gone || !sc->sc_enabled) {
> +       if (sc->wi_gone) {
>                 imr->ifm_active = IFM_IEEE80211 | IFM_NONE;
>                 imr->ifm_status = 0;
>                 return;
> @@ -1267,6 +1267,10 @@
> 
>         imr->ifm_status = IFM_AVALID;
>         imr->ifm_active = IFM_IEEE80211;
> +       if (!sc->sc_enabled) {
> +               imr->ifm_active |= IFM_NONE;
> +               return;
> +       }
>         if (ic->ic_state == IEEE80211_S_RUN &&
>             (sc->sc_flags & WI_FLAGS_OUTRANGE) == 0)
>                 imr->ifm_status |= IFM_ACTIVE;
>

Yup, thanks.

	Sam



More information about the freebsd-current mailing list