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