From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S261323AbTDHQ0v (for ); Tue, 8 Apr 2003 12:26:51 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S261326AbTDHQ0v (for ); Tue, 8 Apr 2003 12:26:51 -0400 Received: from smtp02.web.de ([217.72.192.151]:22290 "EHLO smtp.web.de") by vger.kernel.org with ESMTP id S261323AbTDHQ0k (for ); Tue, 8 Apr 2003 12:26:40 -0400 From: Michael Buesch To: Karsten Keil Subject: [2.5.67] oops in hisax Date: Tue, 8 Apr 2003 18:37:43 +0200 User-Agent: KMail/1.5 Cc: linux-kernel@vger.kernel.org MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Content-Disposition: inline Message-Id: <200304081837.43751.freesoftwaredeveloper@web.de> Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org 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:[] 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: [] init_d_st+0x52/0x11d [] init_PStack+0x20/0xbb [] init_chan+0x10b/0x115 [] CallcNewChan+0x26/0xbf [] hisax_register+0x86/0x12b [] pci_device_probe+0x5a/0x68 [] bus_match+0x43/0x6e [] driver_attach+0x5d/0x6f [] bus_add_driver+0xe9/0xeb [] driver_register+0x3a/0x3e [] pci_register_driver+0x49/0x59 [] init_workqueues+0x12/0x2c [] init+0x39/0x196 [] init+0x0/0x196 [] 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 <===== >>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 Trace; c0317a64 Trace; c0317d80 Trace; c0317db0 Trace; c030a073 Trace; c0210240 Trace; c02758bd Trace; c02759be Trace; c0275cda Trace; c02760f4 Trace; c0210357 Trace; c01291e2 Trace; c01050a3 Trace; c010506a Trace; c0107289 Code; c030c19a 00000000 <_EIP>: Code; c030c19a <===== 0: 8b 50 04 mov 0x4(%eax),%edx <===== Code; c030c19d 3: 85 d2 test %edx,%edx Code; c030c19f 5: 75 0a jne 11 <_EIP+0x11> Code; c030c1a1 7: 8b 5d f8 mov 0xfffffff8(%ebp),%ebx Code; c030c1a4 a: 8b 75 fc mov 0xfffffffc(%ebp),%esi Code; c030c1a7 d: 89 ec mov %ebp,%esp Code; c030c1a9 f: 5d pop %ebp Code; c030c1aa 10: c3 ret Code; c030c1ab 11: 89 74 24 00 mov %esi,0x0(%esp,1) GDB: Dump of assembler code for function setstack_HiSax: 0xc030c115 : push %ebp 0xc030c116 : mov %esp,%ebp 0xc030c118 : sub $0x10,%esp 0xc030c11b : mov %ebx,0xfffffff8(%ebp) 0xc030c11e : mov %esi,0xfffffffc(%ebp) 0xc030c121 : mov 0x8(%ebp),%ebx 0xc030c124 : mov 0xc(%ebp),%esi 0xc030c127 : mov %esi,0x4(%ebx) 0xc030c12a : mov 0x8(%esi),%eax 0xc030c12d : movl $0x0,0x10(%ebx) 0xc030c134 : movl $0x1,0x18(%ebx) 0xc030c13b : mov %eax,0x230(%ebx) 0xc030c141 : movl $0xc0573874,0x14(%ebx) 0xc030c148 : mov 0x9b0(%esi),%eax 0xc030c14e : movl $0xc030af09,0x28(%ebx) 0xc030c155 : movl $0x0,0x24(%ebx) 0xc030c15c : mov %eax,0x1c(%ebx) 0xc030c15f : mov %ebx,0x20(%ebx) 0xc030c162 : lea 0x2c(%ebx),%eax 0xc030c165 : mov %eax,0x4(%esp,1) 0xc030c169 : lea 0x14(%ebx),%eax 0xc030c16c : mov %eax,(%esp,1) 0xc030c16f : call 0xc031962c 0xc030c174 : mov %ebx,(%esp,1) 0xc030c177 : call 0xc030ce86 0xc030c17c : mov %ebx,(%esp,1) 0xc030c17f : call 0xc03146bf 0xc030c184 : lea 0x98c(%esi),%eax 0xc030c18a : movl $0xc030be55,0x5c(%ebx) 0xc030c191 : mov %eax,0xc(%ebx) 0xc030c194 : mov 0xfc(%esi),%eax 0xc030c19a : mov 0x4(%eax),%edx // => if (cs->dc_l1_ops->open) // here it oopses // dc_l1_ops == null-pointer here? 0xc030c19d : test %edx,%edx 0xc030c19f : jne 0xc030c1ab 0xc030c1a1 : mov 0xfffffff8(%ebp),%ebx 0xc030c1a4 : mov 0xfffffffc(%ebp),%esi 0xc030c1a7 : mov %ebp,%esp 0xc030c1a9 : pop %ebp 0xc030c1aa : ret 0xc030c1ab : mov %esi,0x4(%esp,1) 0xc030c1af : mov %ebx,(%esp,1) 0xc030c1b2 : call *0x4(%eax) 0xc030c1b5 : jmp 0xc030c1a1 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:[] 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: [] init_d_st+0x52/0x11d [] init_PStack+0x20/0xbb [] init_chan+0x10b/0x115 [] CallcNewChan+0x26/0xbf [] hisax_register+0x86/0x12b [] pci_device_probe+0x5a/0x68 [] bus_match+0x43/0x6e [] driver_attach+0x5d/0x6f [] bus_add_driver+0xe9/0xeb [] driver_register+0x3a/0x3e [] pci_register_driver+0x49/0x59 [] init_workqueues+0x12/0x2c [] init+0x39/0x196 [] init+0x0/0x196 [] 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