From owner-freebsd-usb@FreeBSD.ORG Sun Nov 14 21:19:49 2010 Return-Path: Delivered-To: freebsd-usb@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 3DF661065675 for ; Sun, 14 Nov 2010 21:19:49 +0000 (UTC) (envelope-from bruce@cran.org.uk) Received: from muon.cran.org.uk (muon.cran.org.uk [IPv6:2a01:348:0:15:5d59:5c40:0:1]) by mx1.freebsd.org (Postfix) with ESMTP id 023268FC0C for ; Sun, 14 Nov 2010 21:19:49 +0000 (UTC) Received: from muon.cran.org.uk (localhost [127.0.0.1]) by muon.cran.org.uk (Postfix) with ESMTP id 50215E71EC; Sun, 14 Nov 2010 21:19:48 +0000 (GMT) Received: from core.nessbank (client-86-27-19-226.glfd.adsl.virginmedia.com [86.27.19.226]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by muon.cran.org.uk (Postfix) with ESMTPSA; Sun, 14 Nov 2010 21:19:47 +0000 (GMT) From: Bruce Cran To: freebsd-usb@freebsd.org Date: Sun, 14 Nov 2010 21:19:46 +0000 User-Agent: KMail/1.13.5 (FreeBSD/9.0-CURRENT; KDE/4.5.2; amd64; ; ) MIME-Version: 1.0 Content-Type: Text/Plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Message-Id: <201011142119.46709.bruce@cran.org.uk> Cc: bzeeb+freebsd+lor@zabbadoz.net Subject: LOR: USB config SX lock vs. USB suspend and resume SX lock X-BeenThere: freebsd-usb@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: FreeBSD support for USB List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 14 Nov 2010 21:19:49 -0000 I'm running -CURRENT on a laptop which has a wireless switch. When I boot with it enabled and then switch it off, the following LOR gets logged: lock order reversal: 1st 0xffffff000466d070 USB config SX lock (USB config SX lock) @ /usr/src/head/sys/dev/usb/usb_device.c:2671 2nd 0xffffff000466d090 USB suspend and resume SX lock (USB suspend and resume SX lock) @ /usr/src/head/sys/dev/usb/usb_device.c:2672 3rd 0xffffff0004501870 USB config SX lock (USB config SX lock) @ /usr/src/head/sys/dev/usb/usb_device.c:2671 KDB: stack backtrace: db_trace_self_wrapper() at db_trace_self_wrapper+0x2a kdb_backtrace() at kdb_backtrace+0x37 _witness_debugger() at _witness_debugger+0x2e witness_checkorder() at witness_checkorder+0x807 _sx_xlock() at _sx_xlock+0x55 usbd_enum_lock() at usbd_enum_lock+0x2a usb_unconfigure() at usb_unconfigure+0x16a usb_free_device() at usb_free_device+0x184 uhub_detach() at uhub_detach+0x6a device_detach() at device_detach+0xa4 usb_detach_device() at usb_detach_device+0x78 usb_unconfigure() at usb_unconfigure+0x34 usb_free_device() at usb_free_device+0x184 uhub_explore() at uhub_explore+0x18e usb_bus_explore() at usb_bus_explore+0xc1 usb_process() at usb_process+0xbb fork_exit() at fork_exit+0x12a fork_trampoline() at fork_trampoline+0xe --- trap 0, rip = 0, rsp = 0xffffff81238cecf0, rbp = 0 --- During boot I get the following errors logged: uhub_reattach_port: port 6 reset failed, error=USB_ERR_TIMEOUT uhub_reattach_port: device problem (USB_ERR_TIMEOUT), disabling port 6 uhub_reattach_port: port 2 reset failed, error=USB_ERR_TIMEOUT uhub_reattach_port: device problem (USB_ERR_TIMEOUT), disabling port 2 Before the LOR, some devices get disconnected: ugen5.2: at usbus5 (disconnected) uhub7: at uhub5, port 2, addr 2 (disconnected) ugen5.3: at usbus5 (disconnected) And after, more: ugen5.4: at usbus5 (disconnected) ukbd0: at uhub7, port 2, addr 4 (disconnected) ugen5.5: at usbus5 (disconnected) ums0: at uhub7, port 3, addr 5 (disconnected) -- Bruce Cran