With CONFIG_PREEMPT=y on an SMP AMD (2CPU):
Sleeping function called from illegal context at /kernel/l-2.5.39/include/asm/semaphore.h:119
c1b4ff7c c0117094 c0280b00 c02bc680 00000077 f7f78540 c01ffc8c c02bc680
00000077 c1b4e000 c1b4e000 00000001 c1b4ffdc c1b4ffc0 00000206 f7f78568
c1b4e000 00000001 c1b4ffdc c01fff35 c01fff00 00000000 00000000 00000000
Call Trace:
[<c0117094>]__might_sleep+0x54/0x58
[<c01ffc8c>]usb_hub_events+0x6c/0x2e0
[<c01fff35>]usb_hub_thread+0x35/0xe0
[<c01fff00>]usb_hub_thread+0x0/0xe0
[<c0115500>]default_wake_function+0x0/0x40
[<c010553d>]kernel_thread_helper+0x5/0x18