ehci calling put_device from irq handler

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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
 [<c012006d>] __might_sleep+0x9e/0xa6
 [<c0270400>] put_device+0x1c/0x35
 [<f883ebde>] usb_hcd_giveback_urb+0x23/0x84 [usbcore]
 [<f8820f40>] ehci_urb_done+0x8d/0xcf [ehci_hcd]
 [<f8821138>] qh_completions+0x1b6/0x359 [ehci_hcd]
 [<f882208d>] scan_async+0x8a/0x13f [ehci_hcd]
 [<f8824e77>] ehci_work+0x59/0xd2 [ehci_hcd]
 [<f88255d7>] ehci_irq+0x185/0x336 [ehci_hcd]
 [<c0106a10>] do_gettimeofday+0x1e/0xbf
 [<c0127ae5>] getnstimeofday+0x14/0x2a
 [<c0139f6c>] ktime_get_ts+0x5e/0x66
 [<c0139ea3>] ktime_get+0x1b/0x43
 [<c013a521>] hrtimer_run_queues+0x50/0xf9
 [<f883ec6f>] usb_hcd_irq+0x30/0x68 [usbcore]
 [<c0144b18>] handle_IRQ_event+0x39/0x6d
 [<c0144bd4>] __do_IRQ+0x88/0xfc
 [<c0105789>] do_IRQ+0x19/0x24
 [<c0103b82>] common_interrupt+0x1a/0x20
 [<c01012a5>] mwait_idle+0x2a/0x34
 [<c0101103>] cpu_idle+0x7f/0xb4
 [<c041e898>] start_kernel+0x166/0x17f
 [<c041e2b6>] unknown_bootoption+0x0/0x1e0
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux