USB support in NDIS -- IFF_NEEDSGIANT?
Weongyo Jeong
weongyo.jeong at gmail.com
Mon Feb 16 21:43:47 PST 2009
On Mon, Feb 16, 2009 at 11:33:18AM +0000, Robert Watson wrote:
>
> Dear all:
>
> As you know, I've been gradually working to eliminate all non-MPSAFE
> network device driver infrastructure for 8.0, having removed non-MPSAFE
> network protocol infrastructure in 7.0. In reviewing remaining drivers
> using IFF_NEEDSGIANT, I spotted this in the NDIS code:
>
> 718 if_initname(ifp, device_get_name(dev), device_get_unit(dev));
> 719 ifp->if_mtu = ETHERMTU;
> 720 ifp->if_flags = IFF_BROADCAST | IFF_SIMPLEX | IFF_MULTICAST;
> 721 if (sc->ndis_iftype == PNPBus)
> 722 ifp->if_flags |= IFF_NEEDSGIANT;
> 723 ifp->if_ioctl = ndis_ioctl;
> 724 ifp->if_start = ndis_start;
> 725 ifp->if_init = ndis_init;
>
> Having taken a glance, it looks like this was added specifically to support
> USB devices attached via NDIS.
AFAIK all of usb wireless drivers had it so I couldn't avoid it when I
had implemented.
> With the new USB code, are NDIS drivers still supported?
I think that it would be supported at 8.0
> And in the new world order, is this IFF_NEEDSGIANT still required?
Probably we can remove the IFF_NEEDSGIANT flags at the new USB code.
> Can I simply remove it once the old USB code is on the way out the
> door?
IMHO yes I think.
> (Note that the plan is to remove all device drivers that still require
> IFF_NEEDSGIANT some time before 8.0, probably starting with disabling them
> from the build in about 2-3 weeks).
regards,
Weongyo Jeong
More information about the freebsd-usb
mailing list