[PATCH] Remove if_watchdog use
Gavin Atkinson
gavin at freebsd.org
Tue Nov 10 22:49:08 UTC 2009
On Tue, 10 Nov 2009, John Baldwin wrote:
> On Tuesday 10 November 2009 4:45:03 pm Gavin Atkinson wrote:
>> I managed to get a panic when running wpa_supplicant:
>>
>> System call ioctl returning with the following locks held:
>> exclusive sleep mutex an0 (network driver) r=0 (0xc58fc180) locked @
>> /usr/src/sys/dev/an/if_an.c:2341
>> panic: witness_warn
>>
>> This seems to fix that:
>>
>> --- /usr/src/sys/dev/an/if_an.c.orig 2009-11-10 19:26:21.000000000
>> +0000
>> +++ /usr/src/sys/dev/an/if_an.c 2009-11-10 19:27:24.000000000 +0000
>> @@ -2570,6 +2570,9 @@
>> an_setdef(sc, &sc->areq);
>> AN_UNLOCK(sc);
>> break;
>> + default:
>> + AN_UNLOCK(sc);
>> + break;
>> }
>>
>> /*
>
> Ok, thanks. Sadly the ioctl handling probably needs a bit more work since it
> calls copyin() while holding the an(4) mutex, but I will leave that for
> another day.
It actually appears that the above panic is not something that has been
introduced with your patch - I can reproduce it on a vanilla system.
The above patch fixes it in the original code too.
Gavin
More information about the freebsd-net
mailing list