linux 中断异常:irq event 61 bogus return value ffffffff

来源:互联网 发布:java导出excel详解 编辑:程序博客网 时间:2024/06/05 17:11

问题描述:

handlers:
[<c0222d08>] pl_interrupt
irq event 61: bogus return value ffffffff
CPU: 0 PID: 0 Comm: swapper/0 Not tainted 3.14.0-xilinx #108
[<c0014600>] (unwind_backtrace) from [<c0010c84>] (show_stack+0x10/0x14)
[<c0010c84>] (show_stack) from [<c0448818>] (dump_stack+0x84/0xd4)
[<c0448818>] (dump_stack) from [<c0056668>] (__report_bad_irq+0x28/0xb8)
[<c0056668>] (__report_bad_irq) from [<c0054da4>] (handle_irq_event_percpu+0x12c/0x140)
[<c0054da4>] (handle_irq_event_percpu) from [<c0054df4>] (handle_irq_event+0x3c/0x5c)
[<c0054df4>] (handle_irq_event) from [<c0057694>] (handle_fasteoi_irq+0xb0/0xf8)
[<c0057694>] (handle_fasteoi_irq) from [<c0054710>] (generic_handle_irq+0x20/0x30)
[<c0054710>] (generic_handle_irq) from [<c000e47c>] (handle_IRQ+0x64/0x8c)
[<c000e47c>] (handle_IRQ) from [<c0008504>] (gic_handle_irq+0x38/0x5c)
[<c0008504>] (gic_handle_irq) from [<c0011680>] (__irq_svc+0x40/0x70)
Exception stack(0xc0631e70 to 0xc0631eb8)
1e60:                                     00000000 c0630000 00000000 c066ac00
1e80: 00000000 00000082 ffffffff c0630038 c06631f0 0000000a c0631eb8 00200000
1ea0: ffffe249 c0631eb8 c0023cb0 c00245b8 60000113 ffffffff
[<c0011680>] (__irq_svc) from [<c00245b8>] (__do_softirq+0x80/0x1fc)
[<c00245b8>] (__do_softirq) from [<c0024960>] (irq_exit+0x74/0xc8)
[<c0024960>] (irq_exit) from [<c000e480>] (handle_IRQ+0x68/0x8c)
[<c000e480>] (handle_IRQ) from [<c0008504>] (gic_handle_irq+0x38/0x5c)
[<c0008504>] (gic_handle_irq) from [<c0011680>] (__irq_svc+0x40/0x70)
Exception stack(0xc0631f20 to 0xc0631f68)
1f20: c0631f68 000000df 1a863d61 00000034 cfda40e8 00000001 188aa3d0 00000034
1f40: c06631f0 cffff200 c066323c 00000000 00000000 c0631f68 c005e514 c0359eac
1f60: 60000013 ffffffff
[<c0011680>] (__irq_svc) from [<c0359eac>] (cpuidle_enter_state+0x50/0xe8)
[<c0359eac>] (cpuidle_enter_state) from [<c035a024>] (cpuidle_idle_call+0xe0/0x144)
[<c035a024>] (cpuidle_idle_call) from [<c000e74c>] (arch_cpu_idle+0x8/0x38)
[<c000e74c>] (arch_cpu_idle) from [<c00544c0>] (cpu_startup_entry+0xb8/0x118)
[<c00544c0>] (cpu_startup_entry) from [<c0600a58>] (start_kernel+0x2e4/0x334)

handlers:
[<c0222d08>] pl_interrupt
start to input handle,and signum=29
sig0 coming.
start to input handle,and signum=29
sig0 coming.
start to input handle,and signum=29
sig0 coming.
start to input handle,and signum=29
sig0 coming.
start to input handle,and signum=29
sig0 coming.

说明:中断处理函数里的打印语句是执行了的。

问题分析:待研究

问题解决:网友建议如下,

 1,怀疑在初始化 设备的时候,操作顺序有些问题,猜测,怀疑,在没做好处理业务的准备的时候,就进入了,应该把某些开启标志放在靠后的部分较好等你确定你的设备做好准备了,再开启,使能较好。

2,这里大概说下问题所在, 主要的跟楼上的说的差不多, 流程有问题
清中断和中断使能的顺序有问题,再注册中断时候用的命令不对, 再就是没有return IRQ_HANDLED

注:其实楼主说的太笼统了,把中断的所有环节都概括了,这个本身就没错,可是具体是怎样的没说,缺乏关键信息啊。

参考帖吧链接:http://bbs.csdn.net/topics/370147580

最后:网友分析的原因,我基本都修改了,错误仍未解决。有相同问题的小伙伴可留言,我们一起解决。




阅读全文
0 0
原创粉丝点击