From owner-freebsd-bugs@FreeBSD.ORG Wed Mar 23 13:50:03 2005 Return-Path: Delivered-To: freebsd-bugs@hub.freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 050C316A4CE for ; Wed, 23 Mar 2005 13:50:03 +0000 (GMT) Received: from freefall.freebsd.org (freefall.freebsd.org [216.136.204.21]) by mx1.FreeBSD.org (Postfix) with ESMTP id B578B43D1F for ; Wed, 23 Mar 2005 13:50:02 +0000 (GMT) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (gnats@localhost [127.0.0.1]) by freefall.freebsd.org (8.13.3/8.13.3) with ESMTP id j2NDo272058396 for ; Wed, 23 Mar 2005 13:50:02 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.13.3/8.13.1/Submit) id j2NDo2tN058395; Wed, 23 Mar 2005 13:50:02 GMT (envelope-from gnats) Resent-Date: Wed, 23 Mar 2005 13:50:02 GMT Resent-Message-Id: <200503231350.j2NDo2tN058395@freefall.freebsd.org> Resent-From: FreeBSD-gnats-submit@FreeBSD.org (GNATS Filer) Resent-To: freebsd-bugs@FreeBSD.org Resent-Reply-To: FreeBSD-gnats-submit@FreeBSD.org, Yoichi NAKAYAMA Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 88DA716A4CE; Wed, 23 Mar 2005 13:40:40 +0000 (GMT) Received: from alcoholic.geiin.org (usen-59x87x89x234.ap-US02.usen.ad.jp [59.87.89.234]) by mx1.FreeBSD.org (Postfix) with ESMTP id DF2B043D2F; Wed, 23 Mar 2005 13:40:39 +0000 (GMT) (envelope-from yoichi@alcoholic.geiin.org) Received: by alcoholic.geiin.org (Postfix, from userid 1001) id C656B1E8F7; Wed, 23 Mar 2005 22:40:38 +0900 (JST) Message-Id: <20050323134038.C656B1E8F7@alcoholic.geiin.org> Date: Wed, 23 Mar 2005 22:40:38 +0900 (JST) From: Yoichi NAKAYAMA To: FreeBSD-gnats-submit@FreeBSD.org X-Send-Pr-Version: 3.113 cc: yoichi@FreeBSD.org Subject: kern/79160: xl_detach cause panic X-BeenThere: freebsd-bugs@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list Reply-To: Yoichi NAKAYAMA List-Id: Bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 23 Mar 2005 13:50:03 -0000 >Number: 79160 >Category: kern >Synopsis: xl_detach cause panic >Confidential: no >Severity: serious >Priority: high >Responsible: freebsd-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Wed Mar 23 13:50:02 GMT 2005 >Closed-Date: >Last-Modified: >Originator: Yoichi NAKAYAMA >Release: FreeBSD-current >Organization: Geiin.org >Environment: >Description: I'm using cardbus NIC 3CXFE575CT-AP, which uses xl driver. When I eject the card, I met panic as follows: panic: _mtx_lock_sleep: recursed on non-recursive mutex xl0 @ /usr/src/sys/pci/if_xl.c:3050 db> trace kdb_enter(...) panic(...) _mtx_lock_sleep(...) _mtx_lock_flags(...) xl_ioctl(...) if_delmulti(...) in6_delmulti(...) in6_purgeaddr(...) if_detach(...) ether_ifdetach(...) xl_detach(...) device_detach(...) cardbus_detach_card(...) cbb_removal(...) cbb_event_thread(...) >How-To-Repeat: detach xl device >Fix: Remove lock while calling ether_ifdetach(). Almost same problem has been reported before for sys/pci/if_vr.c: http://www.freebsd.org/cgi/cvsweb.cgi/src/sys/pci/if_vr.c?rev=1.98&content-type=text/x-cvsweb-markup&only_with_tag=MAIN There are some other files with similar problem, perhaps. --- src/sys/pci/if_xl.c.orig +++ src/sys/pci/if_xl.c @@ -1705,7 +1705,9 @@ if (device_is_attached(dev)) { xl_reset(sc); xl_stop(sc); + XL_UNLOCK(sc); ether_ifdetach(ifp); + XL_LOCK(sc); } if (sc->xl_miibus) device_delete_child(dev, sc->xl_miibus); >Release-Note: >Audit-Trail: >Unformatted: