Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 24 Jul 2005 19:35:16 GMT
From:      Rui Paulo <rpaulo@NetBSD.org>
To:        freebsd-gnats-submit@FreeBSD.org
Subject:   kern/84014: xl(4) lock held
Message-ID:  <200507241935.j6OJZGXW076702@www.freebsd.org>
Resent-Message-ID: <200507241940.j6OJeG36063650@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

>Number:         84014
>Category:       kern
>Synopsis:       xl(4) lock held
>Confidential:   no
>Severity:       critical
>Priority:       high
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Sun Jul 24 19:40:16 GMT 2005
>Closed-Date:
>Last-Modified:
>Originator:     Rui Paulo
>Release:        FreeBSD 7.0-CURRENT i386
>Organization:
>Environment:
System: FreeBSD quanta.internal.fnop.net 7.0-CURRENT FreeBSD 7.0-CURRENT #3: Sun Jul 24 02:35:06 WEST 2005 rpaulo@quanta:/usr/obj/usr/src/sys/GENERIC i386
if_xl.c revision 1.191

>Description:
I get the following panic on system bootup:

taskqueue_drain with the following non-sleepable locks held:
exclusive sleep mutex xl0 (network driver) r = 0 (0xc135e0a4) locked @ /usr/src/sys/pci/if_xl.c:2798
KDB: stack backtrace:
kdb_backtrace(1,c135e0c8,c135c000,c1265c00,c7224904) at kdb_backtrace+0x29
witness_warn(5,0,c08599d8,c135c000,c135c000) at witness_warn+0x18e
taskqueue_drain(c1265c00,c135e0c8,c135e0a4,1,c086ce7d,cc9) at taskqueue_drain+0x1a
xl_stop(c135c000,c135e0a4,1,c086ce7d,afb) at xl_stop+0x44
xl_init_locked(c135c000,c135e0a4,0,c086ce7d,aee) at xl_init_locked+0x33
xl_init(c135c000) at xl_init+0x26
ether_ioctl(c1348400,8020690c,c1443400,0,1) at ether_ioctl+0x64
xl_ioctl(c1348400,8020690c,c1443400,0,c1443400) at xl_ioctl+0x2be
in6_ifinit(c1348400,c1443400,c7224b1c,1,40) at in6_ifinit+0x90
in6_update_ifa(c1348400,c7224b0c,0) at in6_update_ifa+0x456
in6_ifattach_linklocal(c1348400,0) at in6_ifattach_linklocal+0xe5
in6_ifattach(c1348400,0,c135f400,0,0) at in6_ifattach+0xb9
in6_if_up(c1348400,c1348400,80206910,c13f68c0,0) at in6_if_up+0x13
if_route(c1348400,1,0,c7224c4c,c069740f) at if_route+0x55
if_up(c1348400) at if_up+0xf
ifhwioctl(80206910,c1348400,c13f68c0,c1334a80,c06438ff) at ifhwioctl+0x29b
ifioctl(c1460000,80206910,c13f68c0,c1334a80,0) at ifioctl+0xc3
soo_ioctl(c14161b0,80206910,c13f68c0,c1265100,c1334a80) at soo_ioctl+0x2db
ioctl(c1334a80,c7224d04,3,6,247) at ioctl+0x370
syscall(3b,3b,3b,4,1) at syscall+0x22f
Xint0x80_syscall() at Xint0x80_syscall+0x1f
--- syscall (54, FreeBSD ELF32, ioctl), eip = 0x280c6287, esp = 0xbfbfe56c, ebp = 0xbfbfe5b8 ---

I think the bug was introduced in revision 1.191:

revision 1.191
date: 2005/07/13 14:06:13;  author: glebius;  state: Exp;  lines: +2 -0
NET_LOCK_GIANT() when entering network code.

Pointy hat to:  glebius
Reported by:    rodrigc

It worked fine during RELENG_6 freeze, IIRC.

>How-To-Repeat:
      
>Fix:
      
>Release-Note:
>Audit-Trail:
>Unformatted:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200507241935.j6OJZGXW076702>