|
Hello,
I am trying to use ikd kernel debugger in a laptop with the PCMCIA package installed. Is this possible at all? I have tried kernel 2.2.13 with pcmcia-cs 3.1.9 and 3.1.13 and kernel 2.2.14 with pcmcia-cs 3.1.14. So far, I can load ds.o i82365.o and pcmcia_core.o with no problem. When I insert a card, I get dropped in the debugger:
<4>Entering kdb due to panic @ 0xc0113d8d <4>eax = 0xc3efba90 ebx = 0x000051e6 ecx = 0x00000000 edx = 0x00000001 <4>esi = 0xc3efba8c edi = 0x00000004 esp = 0x00000000 eip = 0xc0113d8d <4>ebp = 0xc0239ec0 ss = 0x00000004 cs = 0x00000010 eflags = 0x00010217 <4> ds = 0x00000018 es = 0x00000018 origeax = 0xffffffff ®s = 0xc0239e80 <4>kdb> EBP EIP Function(args) <4>0xc0239ec0 0xc0113d8d __wake_up+0x1d( 0xc3efba90, 0x4, 0x0, 0xc0239ee4, 0xc) <4>0xc0239ed4 0xc4823384 unregister_pccard_driver+0x1ec( 0xc3b15bf0, 0x4, 0xc0) <4>0xc0239ee4 0xc4823488 unregister_pccard_driver+0x2f0( 0x4) <4>0xc0239f04 0xc480c6fe unregister_ss_entry+0x4c2( 0xc3cc4800) <4>0xc0239f24 0xc480c652 unregister_ss_entry+0x416( 0x0) <4>0xc0239f48 0xc0114a2d timer_bh+0x32d( ) <4>0xc0239f58 0xc011ba09 do_bottom_half+0x49( ) <4>0xc0239f78 0xc0113ccc schedule+0x1dc( ) <4>0xc0239f84 0xc0108469 hard_idle+0x49( 0xc0238000, 0x98800, 0xc0106000) <4>0xc0239f98 0xc01084bd cpu_idle+0x18ad( 0x0) <4>0xc0239fa4 0xc0108507 sys_idle+0x17( 0x0, 0x0, 0x1, 0x98800, 0xc0106000) <4>0xc0239fe0 0xc0109df4 system_call+0x34( 0x0) <4>0xc0239ff8 0xc0106dca start_kernel+0x19a( 0x0, 0xc021f778, 0xc02201bc, 0x0,) <4>0x0 0xc0100176 L6 If I continue, I get the following Oops:
<4>kdb> Oops: 0000 <4>CPU: 0 <4>EIP: 0010:[<c0113d8d>] <4>EFLAGS: 00010217 <4>eax: c3efba90 ebx: 000051e6 ecx: 00000000 edx: 00000001 <4>esi: c3efba8c edi: 00000004 ebp: c0239ec0 esp: c0239ebc <4>ds: 0018 es: 0018 ss: 0018 <4>Process swapper (pid: 0, process nr: 0, stackpage=c0239000) <4>Stack: c3b15bf0 c0239ed4 c4823384 c3efba90 00000004 00000000 c0239ee4 c48234 <4> c3b15bf0 00000004 c0239f04 c480c6fe 00000004 00000000 c3efbacc c3cc48 <4> 00000000 00000075 c0239f24 c480c652 c3cc4800 00000004 00000000 000000 <4>Call Trace: [<c4823384>] (0) [<c4823488>] (20) [<c480c6fe>] (16) [<c480c652> <4> [<c0108469>] (32) [<c01084bd>] (12) [<c0108507>] (20) [<c0109df4>] (1 <4>Code: 8b 13 8b 5b 04 8b 02 85 c7 74 f1 39 f3 74 0b 52 e8 0e f9 ff <4>Aiee, killing interrupt handler <0>Kernel panic: Attempted to kill the idle task! <0>In swapper task - not syncing This happens with a WaveLAN IEEE802.11 card and 3COM 3CCFE574BT ethernet card. If I don't have the ikd patch installed, this does not happen. I get the same panic if try to use the PCMCIA package with a patch of my own that adds a simple character device driver, but it happens more randomly. It seems the problem is with wait_queue handling, but is the problem in ds.c or both in my code and ikd? It seems that ds.c initializes its wait_queue to NULL, so does my code. Any ideas? Just in case the ksymoops output is of any help, I'll include it below. Any hints would be appreciated. ksymoops output follows:
Warning in compare_ksyms_lsmod, module i82365 is in lsmod but not in ksyms, probably no symbols exported
Oops: 0000
CPU: 0
EIP: 0010:[<c0113d8d>]
EFLAGS: 00010217
eax: c3efba90 ebx: 000051e6 ecx: 00000000 edx: 00000001
esi: c3efba8c edi: 00000004 ebp: c0239ec0 esp: c0239ebc
ds: 0018 es: 0018 ss: 0018
Process swapper (pid: 0, process nr: 0, stackpage=c0239000)
Stack: c3b15bf0 c0239ed4 c4823384 c3efba90 00000004 00000000 c0239ee4 c4823488
c3b15bf0 00000004 c0239f04 c480c6fe 00000004 00000000 c3efbacc c3cc4800
00000000 00000075 c0239f24 c480c652 c3cc4800 00000004 00000000 00000000
Call Trace: [<c4823384>] (0) [<c4823488>] (20) [<c480c6fe>] (16) [<c480c652>] (
[<c0108469>] (32) [<c01084bd>] (12) [<c0108507>] (20) [<c0109df4>] (12)
Code: 8b 13 8b 5b 04 8b 02 85 c7 74 f1 39 f3 74 0b 52 e8 0e f9 ff
>>EIP: c0113d8d <__wake_up+1d/50> Trace: c4823384 <handle_event+34/3c> Trace: c0108469 <hard_idle+49/60>Code: c0113d8d <__wake_up+1d/50> 00000000 <_EIP>: <=== Code: c0113d8d <__wake_up+1d/50> 0: 8b 13 movl (%ebx),%edx <=== Code: c0113d8f <__wake_up+1f/50> 2: 8b 5b 04 movl 0x4(%ebx),%ebx Code: c0113d92 <__wake_up+22/50> 5: 8b 02 movl (%edx),%eax Code: c0113d94 <__wake_up+24/50> 7: 85 c7 testl %eax,%edi Code: c0113d96 <__wake_up+26/50> 9: 74 f1 je c0113d89 <__wake_up+19/50> Code: c0113d98 <__wake_up+28/50> b: 39 f3 cmpl %esi,%ebx Code: c0113d9a <__wake_up+2a/50> d: 74 0b je c0113da7 <__wake_up+37/50> Code: c0113d9c <__wake_up+2c/50> f: 52 pushl %edx Code: c0113d9d <__wake_up+2d/50> 10: e8 0e f9 ff 00 call c11136b0 <_end+eba27c/45b2c1c> Aiee, killing interrupt handler Kernel panic: Attempted to kill the idle task! In swapper task - not syncing
|
Messages