From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1030361AbWARVba (ORCPT ); Wed, 18 Jan 2006 16:31:30 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1030473AbWARVba (ORCPT ); Wed, 18 Jan 2006 16:31:30 -0500 Received: from mail.kroah.org ([69.55.234.183]:10148 "EHLO perch.kroah.org") by vger.kernel.org with ESMTP id S1030361AbWARVb3 (ORCPT ); Wed, 18 Jan 2006 16:31:29 -0500 Date: Wed, 18 Jan 2006 13:29:01 -0800 From: Greg KH To: David Brownell Cc: linux-usb-devel@lists.sourceforge.net, linux-kernel@vger.kernel.org Subject: ehci calling put_device from irq handler Message-ID: <20060118212901.GA8923@kroah.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.5.11 Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org We can not call put_device() from irq context :( I added a "might_sleep()" to the driver core and get the following from the ehci driver. Any thoughts? thanks, greg k-h Debug: sleeping function called from invalid context at drivers/base/core.c:343 in_atomic():1, irqs_disabled():0 [] __might_sleep+0x9e/0xa6 [] put_device+0x1c/0x35 [] usb_hcd_giveback_urb+0x23/0x84 [usbcore] [] ehci_urb_done+0x8d/0xcf [ehci_hcd] [] qh_completions+0x1b6/0x359 [ehci_hcd] [] scan_async+0x8a/0x13f [ehci_hcd] [] ehci_work+0x59/0xd2 [ehci_hcd] [] ehci_irq+0x185/0x336 [ehci_hcd] [] do_gettimeofday+0x1e/0xbf [] getnstimeofday+0x14/0x2a [] ktime_get_ts+0x5e/0x66 [] ktime_get+0x1b/0x43 [] hrtimer_run_queues+0x50/0xf9 [] usb_hcd_irq+0x30/0x68 [usbcore] [] handle_IRQ_event+0x39/0x6d [] __do_IRQ+0x88/0xfc [] do_IRQ+0x19/0x24 [] common_interrupt+0x1a/0x20 [] mwait_idle+0x2a/0x34 [] cpu_idle+0x7f/0xb4 [] start_kernel+0x166/0x17f [] unknown_bootoption+0x0/0x1e0