LOR in /usr/src/sys/netinet/in.c:972

Robert Watson rwatson at FreeBSD.org
Thu Sep 15 13:16:21 PDT 2005


On Thu, 15 Sep 2005, John Baldwin wrote:

>>> This is a real LOR caused by the fact that in_addmulti() holds the 
>>> in_multi_mtx() lock across the call to if_addmulti() and if_addmulti() 
>>> will acquire Giant for non-MPsafe drivers around calls into their 
>>> ioctl routine. I think that to better expose these issues, the various 
>>> conditional-Giant macros need to include a witness_warn() to make sure 
>>> only sleepable locks and/or Giant are held when the lock macro is 
>>> invoked.
>>
>> The right strategy here may in fact be to eliminate Giant acquisition 
>> by network device drivers...
>
> I'm working on that. :)

And it is much appreciated :-).

Robert N M Watson


More information about the freebsd-current mailing list