Re: lor in in.c and if_ural.c

From: Robert Watson <rwatson_at_FreeBSD.org>
Date: Thu, 22 Sep 2005 12:04:35 +0100 (BST)
On Wed, 21 Sep 2005, John Baldwin wrote:

> On Monday 19 September 2005 05:08 pm, Bjoern A. Zeeb wrote:
>> On Mon, 19 Sep 2005, Erik Winge wrote:
>>> I got this lock order reversal on 7.0-CURRENT today:
>>>
>>> lock order reversal: (Giant after non-sleepable)
>>>  1st 0xc06aaea0 in_multi_mtx (in_multi_mtx) _at_
>>> /usr/src/sys/netinet/in.c:964 2nd 0xc065dee0 Giant (Giant) _at_
>>> /usr/src/sys/dev/usb/if_ural.c:1401
>>
>> for the archives: I added this with LOR ID 162. See
>> 	http://sources.zabbadoz.net/freebsd/lor.html#162
>
> This LOR is going to happen with every non-MPSAFE network driver for 
> now.

Actually, this one is a little different -- the one you're thinking of is 
the Giant acquisition in in.c, but this is in fact Giant acquisition in 
the device driver itself, in its ioctl routine.  Device drivers Should Not 
Do That, but likely do because otherwise they fail Giant assertions.  We 
should fix those callers to acquire Giant, or fix all device drivers (or 
both?).

Robert N M Watson
Received on Thu Sep 22 2005 - 09:04:36 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:38:44 UTC