Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752165Ab3GGJcb (ORCPT ); Sun, 7 Jul 2013 05:32:31 -0400 Received: from mail-ve0-f173.google.com ([209.85.128.173]:50441 "EHLO mail-ve0-f173.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751683Ab3GGJc2 (ORCPT ); Sun, 7 Jul 2013 05:32:28 -0400 MIME-Version: 1.0 In-Reply-To: References: <51D85BDE.4000703@gmail.com> Date: Sun, 7 Jul 2013 17:32:26 +0800 Message-ID: Subject: Re: inconsistent {IN-HARDIRQ-W} -> {HARDIRQ-ON-W} usage with hcd_urb_list_lock From: Ming Lei To: Alan Stern Cc: Sarah Sharp , Maarten Lankhorst , Greg Kroah-Hartman , LKML , USB list Content-Type: text/plain; charset=ISO-8859-1 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2907 Lines: 66 On Sun, Jul 7, 2013 at 4:48 AM, Alan Stern wrote: > On Sat, 6 Jul 2013, Maarten Lankhorst wrote: > >> I didn't even know I still had lockdep on. >> The following lockdep splat happened when I plugged in a usb bluetooth dongle, using >> the pre-rc1 3.11 kernel at HEAD b2c311075db >> >> ================================= >> [ INFO: inconsistent lock state ] >> 3.10.0+ #106 Not tainted >> --------------------------------- >> inconsistent {IN-HARDIRQ-W} -> {HARDIRQ-ON-W} usage. >> irq/42-xhci_hcd/97 [HC0[0]:SC0[2]:HE1:SE0] takes: >> (hcd_urb_list_lock){?.....}, at: [] usb_hcd_unlink_urb_from_ep+0x28/0x4e > >> stack backtrace: >> CPU: 1 PID: 97 Comm: irq/42-xhci_hcd Not tainted 3.10.0+ #106 Maarten, I am wondering you are running kernel from linus tree since looks xhci threaded irq is enabled from the log. If yes, please don't do that because USB host controller driver still doesn't support threaded irq now. >> Hardware name: Acer Aspire M3985/Aspire M3985, BIOS P01-A1 03/12/2012 >> ffffffff8210c150 ffff88040834da48 ffffffff81691af4 0000000000000007 >> ffff8804082e20b0 ffff88040834daa8 ffffffff8168cb10 0000000000000002 >> ffff880400000001 ffff880400000000 ffffffff8100f4f7 ffff88040834dac4 >> Call Trace: >> [] dump_stack+0x4f/0x84 >> [] print_usage_bug+0x1f5/0x206 >> [] ? save_stack_trace+0x2f/0x50 >> [] mark_lock+0x276/0x2cf >> [] ? check_usage_forwards+0x12f/0x12f >> [] __lock_acquire+0x5c0/0x1c2e >> [] ? mark_held_locks+0x6d/0x117 >> [] ? __slab_free+0x1c7/0x2ed >> [] ? trace_hardirqs_on_caller+0xac/0x1bb >> [] ? trace_hardirqs_on+0xd/0xf >> [] ? usb_hcd_unlink_urb_from_ep+0x28/0x4e >> [] lock_acquire+0x87/0x139 >> [] ? usb_hcd_unlink_urb_from_ep+0x28/0x4e >> [] _raw_spin_lock+0x3b/0x4a >> [] ? usb_hcd_unlink_urb_from_ep+0x28/0x4e >> [] usb_hcd_unlink_urb_from_ep+0x28/0x4e >> [] xhci_irq+0x5ac/0x143d >> [] ? _raw_spin_unlock_irq+0x3b/0x5d >> [] ? finish_task_switch+0x7c/0x101 >> [] ? finish_task_switch+0x3f/0x101 >> [] ? __schedule+0x42a/0x885 >> [] ? irq_thread_fn+0x48/0x48 >> [] xhci_msi_irq+0x11/0x15 > > It looks like xhci_msi_irq() needs to call local_irq_save() and > local_irq_restore(). Looks it isn't needed. Thanks, -- Ming Lei -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/