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]