BUG: scheduling while atomic: ksdioirqd/mmc2/91/0x00000104错误分析

在sdio中断的tasklet里调用SDIO读写函数出错。

分析:tasklet中不允许使用带睡眠机制的函数。

解决:换成workqueue或者信号量。

log:

 

mux_readfromsdio_tasklet_handler()
[   31.373676] BUG: scheduling while atomic: ksdioirqd/mmc2/91/0x00000104
[   31.380196] Modules linked in:
[   31.383215]
[   31.384693] Pid: 91, comm:       ksdioirqd/mmc2
[   31.389217] CPU: 0    Not tainted  (2.6.35.11 #174)
[   31.394080] PC is at vprintk+0x43c/0x4c0
[   31.397983] LR is at vprintk+0x434/0x4c0
[   31.401882] pc : [<c018cd9c>]    lr : [<c018cd94>]    psr: 60000013
[   31.401887] sp : dff3deb8  ip : e18e6000  fp : 60000013
[   31.413346] r10: dff3deb8  r9 : 00000000  r8 : 00000047
[   31.418553] r7 : 00000001  r6 : 00000003  r5 : 00000035  r4 : 00000001
[   31.425057] r3 : c0a46bc4  r2 : c0a46bc4  r1 : dff3de90  r0 : c0a46be4
[   31.431575] Flags: nZCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM 
Segment kerl
[   31.438866] Control: 10c57c7d  Table: 5eaac06a  DAC: 00000017
[   31.444588]
[   31.444590] PC: 0xc018cd1c:
[   31.448848] cd1c  e1d322b8 e3120010 1a000003 e5933034 e3530000 1aff

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值