标签:
BUG: sleeping function called from invalid context at mm/slub.c:795
in_atomic(): 1, irqs_disabled(): 128, pid: 0, name: swapper
[<c0038d70>] (unwind_backtrace+0x0/0xe4) from [<c00a0400>] (__kmalloc+0x6c/0xf4)
[<c00a0400>] (__kmalloc+0x6c/0xf4) from [<c01fac00>] (ohci_urb_enqueue+0x218/0x68c)
[<c01fac00>] (ohci_urb_enqueue+0x218/0x68c) from [<c01eed00>] (usb_hcd_submit_urb+0x7ac/0x8c4)
[<c01eed00>] (usb_hcd_submit_urb+0x7ac/0x8c4) from [<c01edc30>] (usb_hcd_giveback_urb+0x70/0xb8)
[<c01edc30>] (usb_hcd_giveback_urb+0x70/0xb8) from [<c01fa72c>] (finish_urb+0x7c/0xb8)
[<c01fa72c>] (finish_urb+0x7c/0xb8) from [<c01fbddc>] (finish_unlinks+0x168/0x2b8)
[<c01fbddc>] (finish_unlinks+0x168/0x2b8) from [<c01fe288>] (ohci_irq+0x438/0x4e4)
[<c01fe288>] (ohci_irq+0x438/0x4e4) from [<c01ed72c>] (usb_hcd_irq+0x38/0x88)
[<c01ed72c>] (usb_hcd_irq+0x38/0x88) from [<c0076068>] (handle_IRQ_event+0x24/0xe0)
[<c0076068>] (handle_IRQ_event+0x24/0xe0) from [<c00779a0>] (handle_level_irq+0xbc/0x13c)
[<c00779a0>] (handle_level_irq+0xbc/0x13c) from [<c0029070>] (asm_do_IRQ+0x70/0x94)
[<c0029070>] (asm_do_IRQ+0x70/0x94) from [<c0033248>] (__irq_svc+0x48/0xa0)
Exception stack(0xc0395f78 to 0xc0395fc0)
5f60: 00000000 00000000
5f80: c0395fc0 00000000 c0394000 c039925c c03ba3a4 c05f2900 500212f4 410fb766
5fa0: 5002128c 00000000 cfb96044 c0395fc0 c00348c0 c00346dc 60000013 ffffffff
[<c0033248>] (__irq_svc+0x48/0xa0) from [<c00346dc>] (default_idle+0x14/0x18)
[<c00346dc>] (default_idle+0x14/0x18) from [<c00348c0>] (cpu_idle+0x40/0x8c)
[<c00348c0>] (cpu_idle+0x40/0x8c) from [<c00089ec>] (start_kernel+0x270/0x2c8)
[<c00089ec>] (start_kernel+0x270/0x2c8) from [<50008034>] (0x50008034)
这是我写USB驱动是出现的错误信息,BUG后面写的是出现错误的原因,然后后面的一大坨恐怖的东西原来是内核的堆栈信息,仔细看一下就会知道函数调用顺序了,
unwind_backtrace -> __kmalloc -> ohci_urb_enqueue -> usb_hcd_submit_urb -> usb_hcd_giveback_urb -> finish_urb ... 等等。
标签:
原文地址:http://www.cnblogs.com/cxd2014/p/4495452.html