[PATCH] USB: Fix down() in hard IRQ in powermate driver
Fixes this warning: May 18 06:56:01 Knoppix kernel: Debug: sleeping function called from invalid context at include/asm/semaphore.h:119 May 18 06:56:01 Knoppix kernel: in_atomic():1, irqs_disabled():0 May 18 06:56:01 Knoppix kernel: Call Trace: May 18 06:56:01 Knoppix kernel: [<c0117083>] __might_sleep+0xb2/0xd3 May 18 06:56:01 Knoppix kernel: [<f88b92f4>] powermate_config_complete+0x33/0x77 [powermate] May 18 06:56:01 Knoppix kernel: [<c02c6760>] usb_hcd_giveback_urb+0x25/0x39 May 18 06:56:01 Knoppix kernel: [<c02d7194>] uhci_finish_urb+0x54/0xa1 May 18 06:56:01 Knoppix kernel: [<c02d7224>] uhci_finish_completion+0x43/0x55 May 18 06:56:01 Knoppix kernel: [<c02d737d>] uhci_irq+0xf8/0x179 May 18 06:56:01 Knoppix kernel: [<c02c67aa>] usb_hcd_irq+0x36/0x67 May 18 06:56:01 Knoppix kernel: [<c01060c6>] handle_IRQ_event+0x3a/0x64 May 18 06:56:01 Knoppix kernel: [<c0106479>] do_IRQ+0xb8/0x192 May 18 06:56:01 Knoppix kernel: [<c0104850>] common_interrupt+0x18/0x20 Attached patch uses spinlocks instead of a semaphore so that we can't sleep when in_atomic().
Showing
Please register or sign in to comment