+ -
当前位置:首页 → 问答吧 → 请问一个中断处理的问题

请问一个中断处理的问题

时间:2010-09-09

来源:互联网

  1. Pid: 1, comm:                 init

  2. CPU: 0    Not tainted  (2.6.32.9 #93)

  3. PC is at synchronize_irq+0x34/0xe0

  4. LR is at synchronize_irq+0x1c/0xe0

  5. pc : [<c009d7b0>]    lr : [<c009d798>]    psr: 00000113

  6. sp : ef433ad8  ip : c009c3d8  fp : ef433b0c

  7. r10: ef434098  r9 : 00000000  r8 : 00000000

  8. r7 : 00000028  r6 : c0504428  r5 : c0504428  r4 : c05043ec

  9. r3 : 00008703  r2 : 00000070  r1 : 60000113  r0 : c0504428

  10. Flags: nzcv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment user

  11. Control: 10c5387d  Table: 4eefc019  DAC: 00000015



  12. PC: 0xc009d730:

  13. d730  e12fff33 e284603c e1a00006 eb0b0337 e1a01005 e3a02000 e1a07000 e1a00004

  14. d750  ebfffe6b e1a00006 e1a01007 eb0b02b9 e5943010 e5933040 e3530000 089da8f0

  15. d770  e1a00005 e12fff33 e89da8f0 e1a0c00d e92dd8f0 e24cb004 e24dd018 e92d4000

  16. d790  ebfe3a65 ebfffb0a e2504000 1284503c 1a000000 ea000029 e5943024 e1a00005

  17. d7b0  e3130c01 1afffffb eb0b0318 e5946024 e1a01000 e1a00005 eb0b029e e2161c01

  18. d7d0  1afffff4 e594304c e3530000 0a00001b e24b5030 e1a0200d e3c23d7f e3a02014

  19. d7f0  e3c3303f e1a00005 e2846050 e285500c e593700c eb043485 e59f3048 e50b5020

  20. d810  e50b702c e50b3028 e50b5024 e24b5030 e1a00006 e3a02002 e1a01005 ebff7818



  21. LR: 0xc009d718:

  22. d718  089da8f0 e5943010 e593303c e3530000 0a000001 e1a00005 e12fff33 e284603c

  23. d738  e1a00006 eb0b0337 e1a01005 e3a02000 e1a07000 e1a00004 ebfffe6b e1a00006

  24. d758  e1a01007 eb0b02b9 e5943010 e5933040 e3530000 089da8f0 e1a00005 e12fff33

  25. d778  e89da8f0 e1a0c00d e92dd8f0 e24cb004 e24dd018 e92d4000 ebfe3a65 ebfffb0a

  26. d798  e2504000 1284503c 1a000000 ea000029 e5943024 e1a00005 e3130c01 1afffffb

  27. d7b8  eb0b0318 e5946024 e1a01000 e1a00005 eb0b029e e2161c01 1afffff4 e594304c

  28. d7d8  e3530000 0a00001b e24b5030 e1a0200d e3c23d7f e3a02014 e3c3303f e1a00005

  29. d7f8  e2846050 e285500c e593700c eb043485 e59f3048 e50b5020 e50b702c e50b3028



  30. SP: 0xef433a58:

  31. 3a58  0000003d ef433ba8 00000002 00010004 ef433a8c ef433a78 c002b07c c009e810

  32. 3a78  ffffffff f8000000 ef433b0c ef433a90 c002bb88 c002b00c c0504428 60000113

  33. 3a98  00000070 00008703 c05043ec c0504428 c0504428 00000028 00000000 00000000

  34. 3ab8  ef434098 ef433b0c c009c3d8 ef433ad8 c009d798 c009d7b0 00000113 ffffffff

  35. 3ad8  c05043ec c05043ec ef433b0c ef433af0 c009cdc8 c035e254 00000028 c05043ec

  36. 3af8  c0504428 00000028 ef433b24 ef433b10 c009daa4 c009d788 c0586c04 00000028

  37. 3b18  ef433b3c ef433b28 c025a080 c009da70 eedefb40 ef432000 ef433b6c ef433b40

  38. 3b38  c009c778 c025a058 00000000 c05043ec 00000028 c0504428 eedefb40 00000002
复制代码
我在驱动中写了一个中断处理函数,在处理函数中屏蔽掉这个中断,结果崩掉了
static irqreturn_t xxx_irq_handle(int irq, void *dev_id)
{
    disable_irq(irq);
    queue_work(xxx,xxx);
}

如果我不调disable_irq(irq);就不会出错

出错码:

作者: xxw19840406   发布时间: 2010-09-09

没有enable_irq

作者: omycle   发布时间: 2010-09-09