All of lore.kernel.org
 help / color / mirror / Atom feed
* [2.5.67] oops in hisax
@ 2003-04-08 16:37 Michael Buesch
  0 siblings, 0 replies; only message in thread
From: Michael Buesch @ 2003-04-08 16:37 UTC (permalink / raw)
  To: Karsten Keil; +Cc: linux-kernel

Hi.

I got an oops while booting 2.5.67 from hisax subsystem:

ksymoops 2.4.8 on i686 2.4.21-pre6.  Options used
     -v linux-2.5/linux-2.5.67/vmlinux (specified)
     -K (specified)
     -L (specified)
     -O (specified)
     -m linux-2.5/linux-2.5.67/System.map (specified)

Unable to handle kernel NULL pointer dereference at virtual address 00000004
c030c19a
*pde = 00000000
Oops: 0000 [#1]
CPU:    0
EIP:    0060:[<c030c19a>]    Not tainted
Using defaults from ksymoops -t elf32-i386 -a i386
EFLAGS: 00010286
eax: 00000000   ebx: cfd0fc00   ecx: cfd12000   edx: cfd0fde0
esi: cfd12000   edi: cfd1210c   ebp: c1293de0   esp: c1293dd0
ds: 007b   es: 007b   ss: 0068
Stack: cfd0fc00 cfd0fc2c cfd0fc00 cfd12000 c1293e10 c0317b51 cfd0fc00 cfd12000 
       cfd1210c cfd1210c cfd12000 c1293e10 c0317a64 cfd12124 cfd1210c cfd12000 
       c1293e2c c0317d80 cfd1210c cfd1213c cfd12000 c1293e9e cfd120da c1293e48 
Call Trace:
 [<c0317b51>] init_d_st+0x52/0x11d
 [<c0317a64>] init_PStack+0x20/0xbb
 [<c0317d80>] init_chan+0x10b/0x115
 [<c0317db0>] CallcNewChan+0x26/0xbf
 [<c030a073>] hisax_register+0x86/0x12b
 [<c0210240>] pci_device_probe+0x5a/0x68
 [<c02758bd>] bus_match+0x43/0x6e
 [<c02759be>] driver_attach+0x5d/0x6f
 [<c0275cda>] bus_add_driver+0xe9/0xeb
 [<c02760f4>] driver_register+0x3a/0x3e
 [<c0210357>] pci_register_driver+0x49/0x59
 [<c01291e2>] init_workqueues+0x12/0x2c
 [<c01050a3>] init+0x39/0x196
 [<c010506a>] init+0x0/0x196
 [<c0107289>] kernel_thread_helper+0x5/0xb
Code: 8b 50 04 85 d2 75 0a 8b 5d f8 8b 75 fc 89 ec 5d c3 89 74 24 


>>EIP; c030c19a <setstack_HiSax+85/a2>   <=====

>>ebx; cfd0fc00 <_end+f792e48/3fa8304c>
>>ecx; cfd12000 <_end+f795248/3fa8304c>
>>edx; cfd0fde0 <_end+f793028/3fa8304c>
>>esi; cfd12000 <_end+f795248/3fa8304c>
>>edi; cfd1210c <_end+f795354/3fa8304c>
>>ebp; c1293de0 <_end+d17028/3fa8304c>
>>esp; c1293dd0 <_end+d17018/3fa8304c>

Trace; c0317b51 <init_d_st+52/11d>
Trace; c0317a64 <init_PStack+20/bb>
Trace; c0317d80 <init_chan+10b/115>
Trace; c0317db0 <CallcNewChan+26/bf>
Trace; c030a073 <hisax_register+86/12b>
Trace; c0210240 <pci_device_probe+5a/68>
Trace; c02758bd <bus_match+43/6e>
Trace; c02759be <driver_attach+5d/6f>
Trace; c0275cda <bus_add_driver+e9/eb>
Trace; c02760f4 <driver_register+3a/3e>
Trace; c0210357 <pci_register_driver+49/59>
Trace; c01291e2 <init_workqueues+12/2c>
Trace; c01050a3 <init+39/196>
Trace; c010506a <init+0/196>
Trace; c0107289 <kernel_thread_helper+5/b>

Code;  c030c19a <setstack_HiSax+85/a2>
00000000 <_EIP>:
Code;  c030c19a <setstack_HiSax+85/a2>   <=====
   0:   8b 50 04                  mov    0x4(%eax),%edx   <=====
Code;  c030c19d <setstack_HiSax+88/a2>
   3:   85 d2                     test   %edx,%edx
Code;  c030c19f <setstack_HiSax+8a/a2>
   5:   75 0a                     jne    11 <_EIP+0x11>
Code;  c030c1a1 <setstack_HiSax+8c/a2>
   7:   8b 5d f8                  mov    0xfffffff8(%ebp),%ebx
Code;  c030c1a4 <setstack_HiSax+8f/a2>
   a:   8b 75 fc                  mov    0xfffffffc(%ebp),%esi
Code;  c030c1a7 <setstack_HiSax+92/a2>
   d:   89 ec                     mov    %ebp,%esp
Code;  c030c1a9 <setstack_HiSax+94/a2>
   f:   5d                        pop    %ebp
Code;  c030c1aa <setstack_HiSax+95/a2>
  10:   c3                        ret    
Code;  c030c1ab <setstack_HiSax+96/a2>
  11:   89 74 24 00               mov    %esi,0x0(%esp,1)


GDB:
Dump of assembler code for function setstack_HiSax:
0xc030c115 <setstack_HiSax>:    push   %ebp
0xc030c116 <setstack_HiSax+1>:  mov    %esp,%ebp
0xc030c118 <setstack_HiSax+3>:  sub    $0x10,%esp
0xc030c11b <setstack_HiSax+6>:  mov    %ebx,0xfffffff8(%ebp)
0xc030c11e <setstack_HiSax+9>:  mov    %esi,0xfffffffc(%ebp)
0xc030c121 <setstack_HiSax+12>: mov    0x8(%ebp),%ebx
0xc030c124 <setstack_HiSax+15>: mov    0xc(%ebp),%esi
0xc030c127 <setstack_HiSax+18>: mov    %esi,0x4(%ebx)
0xc030c12a <setstack_HiSax+21>: mov    0x8(%esi),%eax
0xc030c12d <setstack_HiSax+24>: movl   $0x0,0x10(%ebx)
0xc030c134 <setstack_HiSax+31>: movl   $0x1,0x18(%ebx)
0xc030c13b <setstack_HiSax+38>: mov    %eax,0x230(%ebx)
0xc030c141 <setstack_HiSax+44>: movl   $0xc0573874,0x14(%ebx)
0xc030c148 <setstack_HiSax+51>: mov    0x9b0(%esi),%eax
0xc030c14e <setstack_HiSax+57>: movl   $0xc030af09,0x28(%ebx)
0xc030c155 <setstack_HiSax+64>: movl   $0x0,0x24(%ebx)
0xc030c15c <setstack_HiSax+71>: mov    %eax,0x1c(%ebx)
0xc030c15f <setstack_HiSax+74>: mov    %ebx,0x20(%ebx)
0xc030c162 <setstack_HiSax+77>: lea    0x2c(%ebx),%eax
0xc030c165 <setstack_HiSax+80>: mov    %eax,0x4(%esp,1)
0xc030c169 <setstack_HiSax+84>: lea    0x14(%ebx),%eax
0xc030c16c <setstack_HiSax+87>: mov    %eax,(%esp,1)
0xc030c16f <setstack_HiSax+90>: call   0xc031962c <FsmInitTimer>
0xc030c174 <setstack_HiSax+95>: mov    %ebx,(%esp,1)
0xc030c177 <setstack_HiSax+98>: call   0xc030ce86 <setstack_tei>
0xc030c17c <setstack_HiSax+103>:        mov    %ebx,(%esp,1)
0xc030c17f <setstack_HiSax+106>:        call   0xc03146bf <setstack_manager>
0xc030c184 <setstack_HiSax+111>:        lea    0x98c(%esi),%eax
0xc030c18a <setstack_HiSax+117>:        movl   $0xc030be55,0x5c(%ebx)
0xc030c191 <setstack_HiSax+124>:        mov    %eax,0xc(%ebx)
0xc030c194 <setstack_HiSax+127>:        mov    0xfc(%esi),%eax

0xc030c19a <setstack_HiSax+133>:        mov    0x4(%eax),%edx
// => if (cs->dc_l1_ops->open)
// here it oopses
// dc_l1_ops == null-pointer here?
0xc030c19d <setstack_HiSax+136>:        test   %edx,%edx
0xc030c19f <setstack_HiSax+138>:        jne    0xc030c1ab <setstack_HiSax+150>

0xc030c1a1 <setstack_HiSax+140>:        mov    0xfffffff8(%ebp),%ebx
0xc030c1a4 <setstack_HiSax+143>:        mov    0xfffffffc(%ebp),%esi
0xc030c1a7 <setstack_HiSax+146>:        mov    %ebp,%esp
0xc030c1a9 <setstack_HiSax+148>:        pop    %ebp
0xc030c1aa <setstack_HiSax+149>:        ret    
0xc030c1ab <setstack_HiSax+150>:        mov    %esi,0x4(%esp,1)
0xc030c1af <setstack_HiSax+154>:        mov    %ebx,(%esp,1)
0xc030c1b2 <setstack_HiSax+157>:        call   *0x4(%eax)
0xc030c1b5 <setstack_HiSax+160>:        jmp    0xc030c1a1 <setstack_HiSax+140>
End of assembler dump.

I've tried to "fix" it with this realy stupid patch, but
I got another oops upon that (This was clear to me, while writing
the patch :)

--- drivers/isdn/hisax/isdnl1.c.orig    2003-04-08 17:52:08.000000000 +0200
+++ drivers/isdn/hisax/isdnl1.c 2003-04-08 17:53:35.000000000 +0200
@@ -905,7 +905,7 @@
        setstack_manager(st);
        st->l1.stlistp = &(cs->stlist);
        st->l1.l2l1  = dch_l2l1;
-       if (cs->dc_l1_ops->open)
+       if (cs->dc_l1_ops && cs->dc_l1_ops->open)
                cs->dc_l1_ops->open(st, cs);
 }


I have too small (very small) knowledge of the hisax subsystem, so I'm not
able to fix this oops. What's dc_l1_ops for? It seems to be a struct holding
various function pointers. Where *should* this pointer be assigned
(but actually isn't -> is currently null-pointer)?

Thanks for help.

Regards
Michael Buesch.

PS: Last part of ttylog is:

i2o_block: Checking for I2O Block devices...
i2o_scsi.c: Version 0.1.2
  chain_pool: 0 bytes @ cfdc66a0
  (512 byte buffers X 4 can_queue X 0 i2o controllers)
i2c-dev.o: i2c /dev entries driver module version 2.7.0 (20021208)
md: raid0 personality registered as nr 2
md: md driver 0.90.0 MAX_MD_DEVS=256, MD_SB_DISKS=27
ISDN subsystem initialized
PPP BSD Compression module registered
HiSax: Linux Driver for passive ISDN cards
HiSax: Version 3.5 (kernel)
HiSax: Layer1 Revision 2.41.6.5
HiSax: Layer2 Revision 2.25.6.4
HiSax: TeiMgr Revision 2.17.6.3
HiSax: Layer3 Revision 2.17.6.5
HiSax: LinkLayer Revision 2.51.6.6
HiSax: Approval certification failed because of
HiSax: unauthorized source code changes
hisax_isac: ISAC-S/ISAC-SX ISDN driver v0.1.0
hisax_fcpcipnp: Fritz!Card PCI/PCIv2/PnP ISDN driver v0.0.1
get_drv 0: 0 -> 1
HiSax: Card 1 Protocol EDSS1 Id=fcpcipnp0 (0)
Unable to handle kernel NULL pointer dereference at virtual address 00000004
 printing eip:
c030c19a
*pde = 00000000
Oops: 0000 [#1]
CPU:    0
EIP:    0060:[<c030c19a>]    Not tainted
EFLAGS: 00010286
EIP is at setstack_HiSax+0x85/0xa2
eax: 00000000   ebx: cfd0fc00   ecx: cfd12000   edx: cfd0fde0
esi: cfd12000   edi: cfd1210c   ebp: c1293de0   esp: c1293dd0
ds: 007b   es: 007b   ss: 0068
Process swapper (pid: 1, threadinfo=c1292000 task=c12ae080)
Stack: cfd0fc00 cfd0fc2c cfd0fc00 cfd12000 c1293e10 c0317b51 cfd0fc00 cfd12000 
       cfd1210c cfd1210c cfd12000 c1293e10 c0317a64 cfd12124 cfd1210c cfd12000 
       c1293e2c c0317d80 cfd1210c cfd1213c cfd12000 c1293e9e cfd120da c1293e48 
Call Trace:
 [<c0317b51>] init_d_st+0x52/0x11d
 [<c0317a64>] init_PStack+0x20/0xbb
 [<c0317d80>] init_chan+0x10b/0x115
 [<c0317db0>] CallcNewChan+0x26/0xbf
 [<c030a073>] hisax_register+0x86/0x12b
 [<c0210240>] pci_device_probe+0x5a/0x68
 [<c02758bd>] bus_match+0x43/0x6e
 [<c02759be>] driver_attach+0x5d/0x6f
 [<c0275cda>] bus_add_driver+0xe9/0xeb
 [<c02760f4>] driver_register+0x3a/0x3e
 [<c0210357>] pci_register_driver+0x49/0x59
 [<c01291e2>] init_workqueues+0x12/0x2c
 [<c01050a3>] init+0x39/0x196
 [<c010506a>] init+0x0/0x196
 [<c0107289>] kernel_thread_helper+0x5/0xb
Code: 8b 50 04 85 d2 75 0a 8b 5d f8 8b 75 fc 89 ec 5d c3 89 74 24 
 <0>Kernel panic: Attempted to kill init!


-- 
My homepage: http://www.8ung.at/tuxsoft
fighting for peace is like fu**ing for virginity


^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2003-04-08 16:26 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2003-04-08 16:37 [2.5.67] oops in hisax Michael Buesch

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.