谢谢,第一次碰到,我有个i2c的设备驱动,在中断里进行读写,就碰到以下情况,不知道是不是使用mutex_lock引起的.
出错的地方在i2c转串口(SC16IS740)的驱动程序里,该模块申请了一个IRQ中断,
中断处理函数是serial_sc16is7_interrupt(),在这个函数里
要调用i2c-core模块里的i2c_smbus_read_byte_data()函数读I2C总线,
但这时系统就panic掉了。
内核版本是2.6.21,下面是出错信息。
---------------------------------------------------------
<3>BUG: scheduling while atomic: swapper/0x00010000/0
<3>bad: scheduling from the idle thread!
<1>Unable to handle kernel NULL pointer dereference at virtual address 00000000
<1>pgd = c0004000
<1>[00000000] *pgd=00000000
Internal error: Oops: 17 [#1]
Modules linked in: nmeapipe gtspmdev
CPU: 0
PC is at dequeue_task+0xc/0x84
LR is at deactivate_task+0x34/0x40
pc : [<bf06633c>] lr : [<bf0666c0>] Not tainted
sp : c0009cec ip : c0009d00 fp : c0009cfc