Kernel 2.4.20 crashes when a second isdn channel is opened by ibod (isdn bandwith daemon).
Arno Wilhelm <[email protected]> Fri, 11 Apr 2003 11:23:35 +0200
| Newsgroups | gmane.linux.isdn |
|---|---|
| Message-ID | <[email protected]> |
Hello, I guess we have detected a kernel bug in the isdn subsystem ( isdn_ppp.c ). I have enclosed the bug report in this mail in the format that is asked by the file "REPORTING-BUGS" in the kernel source directory. If you need further assistance please mail to: [email protected] Regards, Arno Wilhelm [1.] One line summary of the problem: Kernel 2.4.20 crashes when a second isdn channel is opened by ibod (isdn bandwith daemon). [2.] Full description of the problem/report: After having connected to our internet provider via isdn, the kernel crashes whenever the ibod daemons succeeds in opening a second isdn channel. The last human readable messages are: ippp0: all channels busy - requeuing! Scheduling in iterrrupt kernel BUG at sched.c; 564! invalid operand: 0000 We have compiled a fresh unpatched kernel version 2.4.20 from www.kernel.org in order to trace down the bug. I have to say at this point that probably our internet provider does *not* support channel bundling. So I guess that the second channel get's a new connection. But I think that should be a reason for the kernel to crash ? We can reproduce this problem very easily by: - Starting ipppd and connecting to the provider - Flood pinging the point to point partner so that ibod opens the second channel. I will enclose in this mail the full oops message, /var/log/messages, and a patch thar worked for us. [3.] Keywords (i.e., modules, networking, kernel): kernel 2.4.20, all channels busy - requeuing!, kernel BUG at sched.c; 564!, isdn, ibod, second channel, isdn4k-utils 3.2p1, [4.] Kernel version (from /proc/version): cat /proc/version Linux version 2.4.20 (root@vir) (gcc version 2.96 20000731 (Red Hat Linux 7.1 2.96-85)) #4 Thu Apr 10 14:41:07 CEST 2003 [5.] Output of Oops.. message (if applicable) with symbolic information resolved (see Documentation/oops-tracing.txt) ippp0: all channels busy - requeuing! Scheduling in iterrrupt kernel BUG at sched.c; 564! invalid operand: 0000 CPU: 0 EIP: 0010:[<c0113cb3>] Not tainted EFLAGS: 00010292 eax: 00000018 ebx: c0106df0 ecx: c5a48000 edx: 00000001 esi: c027c000 edi: c027c000 ebp: c027dfdc esp: c027dfb8 ds: 0018 es: 0018 ss: 0018 Process swapper (pid: 0, stackpage=c027d000) Stack: c020e2be c027c000 c027c000 00000000 cfd90018 c0100018 c0106df0 c027c000 c027c000 c0106df0 c0106e9e 00000001 00098800 c0105000 0008e000 c027e708 Call Trace: [<c0106df0>] [<c0106df0>] [<c0106e9e>] [<c0105000>] Code: 0f 0b 34 02 b6 e2 20 c0 58 8b 45 e8 c1 e0 05 05 00 6b 29 c0 <0>Kernel panic: Aiee, killing interrupt handler! In interrupt handler - not syncing <0>Rebooting in 120 seconds.. [6.] A small shell script or example program which triggers the problem (if possible) Use redhat isdn setup: [7.] Environment Not important ! [7.1.] Software (add the output of the ver_linux script here) > ./ver_linux If some fields are empty or look unusual you may have an old version. Compare to the current minimal requirements in Documentation/Changes. Linux virusnix 2.4.20 #4 Thu Apr 10 14:41:07 CEST 2003 i686 unknown Gnu C 2.96 Gnu make 3.78.1 binutils 2.9.5.0.22 util-linux 2.10f mount 2.10f modutils 2.3.21 e2fsprogs 1.18 reiserfsprogs 3.x.0k-pre7 PPP 2.4.1 isdn4k-utils 3.2p1 Linux C Library 2.1.3 Dynamic linker (ldd) 2.1.3 Procps 2.0.6 Net-tools 1.54 Console-tools 0.3.3 Sh-utils 2.0 Modules Loaded hisax_fcpcipnp hisax_isac hisax isdn slhc e100 [7.2.] Processor information (from /proc/cpuinfo): > cat /proc/cpuinfo processor : 0 vendor_id : GenuineIntel cpu family : 6 model : 8 model name : Celeron (Coppermine) stepping : 10 cpu MHz : 951.689 cache size : 128 KB fdiv_bug : no hlt_bug : no f00f_bug : no coma_bug : no fpu : yes fpu_exception : yes cpuid level : 2 wp : yes flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 mmx fxsr sse bogomips : 1900.54 [7.3.] Module information (from /proc/modules): > cat /proc/modules hisax_fcpcipnp 7600 0 (unused) hisax_isac 8400 0 [hisax_fcpcipnp] hisax 511440 0 [hisax_fcpcipnp hisax_isac] isdn 114256 0 [hisax] slhc 4656 0 [isdn] e100 52272 1 [7.4.] Loaded driver and hardware information (/proc/ioports, /proc/iomem) > cat /proc/ioports 0000-001f : dma1 0020-003f : pic1 0040-005f : timer 0060-006f : keyboard 0070-007f : rtc 0080-008f : dma page reg 00a0-00bf : pic2 00c0-00df : dma2 00f0-00ff : fpu 0170-0177 : ide1 01f0-01f7 : ide0 0376-0376 : ide1 03c0-03df : vga+ 03f6-03f6 : ide0 03f8-03ff : serial(auto) 0cf8-0cff : PCI conf1 5000-500f : VIA Technologies, Inc. VT82C686 [Apollo Super ACPI] d000-d00f : VIA Technologies, Inc. VT82C586B PIPC Bus Master IDE d000-d007 : ide0 d008-d00f : ide1 d400-d41f : VIA Technologies, Inc. USB d800-d81f : VIA Technologies, Inc. USB (#2) dc00-dc1f : AVM Audiovisuelles MKTG & Computer System GmbH Fritz!PCI v2.0 ISDN dc00-dc1f : fcpcipnp e000-e0ff : PCI device 1050:6692 (Winbond Electronics Corp) e400-e43f : Intel Corp. 82557/8/9 [Ethernet Pro 100] e400-e43f : e100 e800-e83f : Intel Corp. 82557/8/9 [Ethernet Pro 100] (#2) e800-e83f : e100 > cat /proc/iomem 00000000-0009fbff : System RAM 0009fc00-0009ffff : reserved 000a0000-000bffff : Video RAM area 000c0000-000c7fff : Video ROM 000f0000-000fffff : System ROM 00100000-0ffeffff : System RAM 00100000-00208a6e : Kernel code 00208a6f-002778c3 : Kernel data 0fff0000-0fff2fff : ACPI Non-volatile Storage 0fff3000-0fffffff : ACPI Tables d0000000-d7ffffff : S3 Inc. Savage 4 d8000000-dbffffff : VIA Technologies, Inc. VT82C693A/694x [Apollo PRO133x] dd000000-dd07ffff : S3 Inc. Savage 4 dd080000-dd09ffff : Intel Corp. 82557/8/9 [Ethernet Pro 100] dd080000-dd09ffff : e100 dd0a0000-dd0bffff : Intel Corp. 82557/8/9 [Ethernet Pro 100] (#2) dd0a0000-dd0bffff : e100 dd0c0000-dd0c0fff : Intel Corp. 82557/8/9 [Ethernet Pro 100] (#2) dd0c0000-dd0c0fff : e100 dd0c1000-dd0c1fff : Intel Corp. 82557/8/9 [Ethernet Pro 100] dd0c1000-dd0c1fff : e100 dd0c2000-dd0c201f : AVM Audiovisuelles MKTG & Computer System GmbH Fritz!PCI v2.0 ISDN dd0c3000-dd0c3fff : PCI device 1050:6692 (Winbond Electronics Corp) fec00000-fec00fff : reserved fee00000-fee00fff : reserved ffff0000-ffffffff : reserved [7.5.] PCI information ('lspci -vvv' as root) > lspci -vvv 00:00.0 Host bridge: VIA Technologies, Inc. VT82C693A/694x [Apollo PRO133x] (rev c4) Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr+ Stepping- SERR- FastB2B- Status: Cap+ 66Mhz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort+ >SERR- <PERR- Latency: 8 set Region 0: Memory at d8000000 (32-bit, prefetchable) [size=64M] Capabilities: [a0] AGP version 2.0 Status: RQ=31 SBA+ 64bit- FW- Rate=x1,x2 Command: RQ=0 SBA- AGP- 64bit- FW- Rate=<none> Capabilities: [c0] Power Management version 2 Flags: PMEClk- AuxPwr- DSI- D1- D2- PME- Status: D0 PME-Enable- DSel=0 DScale=0 PME- 00:01.0 PCI bridge: VIA Technologies, Inc. VT82C598/694x [Apollo MVP3/Pro133x AGP] (prog-if 00 [Normal decode]) Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr+ Stepping- SERR- FastB2B- Status: Cap+ 66Mhz+ UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort+ >SERR- <PERR- Latency: 0 set Bus: primary=00, secondary=01, subordinate=01, sec-latency=0 I/O behind bridge: 0000f000-00000fff Memory behind bridge: fff00000-000fffff Prefetchable memory behind bridge: fff00000-000fffff BridgeCtl: Parity- SERR- NoISA+ VGA- MAbort- >Reset- FastB2B- Capabilities: [80] Power Management version 2 Flags: PMEClk- AuxPwr- DSI- D1+ D2- PME- Status: D0 PME-Enable- DSel=0 DScale=0 PME- 00:07.0 ISA bridge: VIA Technologies, Inc. VT82C686 [Apollo Super South] (rev 40) Subsystem: VIA Technologies, Inc. VT82C686/A PCI to ISA Bridge Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping+ SERR- FastB2B- Status: Cap+ 66Mhz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- Latency: 0 set Capabilities: [c0] Power Management version 2 Flags: PMEClk- AuxPwr- DSI- D1- D2- PME- Status: D0 PME-Enable- DSel=0 DScale=0 PME- 00:07.1 IDE interface: VIA Technologies, Inc. VT82C586/B/VT82C686/A/B/VT8233/A/C/VT8235 PIPC Bus Master IDE (rev 06) (prog-if 8a [Master SecP PriP]) Subsystem: VIA Technologies, Inc. VT82C586/B/VT82C686/A/B/VT8233/A/C/VT8235 PIPC Bus Master IDE Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- Status: Cap+ 66Mhz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- Latency: 32 set Region 4: I/O ports at d000 [size=16] Capabilities: [c0] Power Management version 2 Flags: PMEClk- AuxPwr- DSI- D1- D2- PME- Status: D0 PME-Enable- DSel=0 DScale=0 PME- 00:07.2 USB Controller: VIA Technologies, Inc. USB (rev 16) (prog-if 00 [UHCI]) Subsystem: VIA Technologies, Inc. (Wrong ID) USB Controller Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- Status: Cap+ 66Mhz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- Latency: 32 set, cache line size 08 Interrupt: pin D routed to IRQ 10 Region 4: I/O ports at d400 [size=32] Capabilities: [80] Power Management version 2 Flags: PMEClk- AuxPwr- DSI- D1- D2- PME- Status: D0 PME-Enable- DSel=0 DScale=0 PME- 00:07.3 USB Controller: VIA Technologies, Inc. USB (rev 16) (prog-if 00 [UHCI]) Subsystem: VIA Technologies, Inc. (Wrong ID) USB Controller Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- Status: Cap+ 66Mhz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- Latency: 32 set, cache line size 08 Interrupt: pin D routed to IRQ 10 Region 4: I/O ports at d800 [size=32] Capabilities: [80] Power Management version 2 Flags: PMEClk- AuxPwr- DSI- D1- D2- PME- Status: D0 PME-Enable- DSel=0 DScale=0 PME- 00:07.4 Bridge: VIA Technologies, Inc. VT82C686 [Apollo Super ACPI] (rev 40) Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- Status: Cap+ 66Mhz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- Interrupt: pin ? routed to IRQ 11 Capabilities: [68] Power Management version 2 Flags: PMEClk- AuxPwr- DSI- D1- D2- PME- Status: D0 PME-Enable- DSel=0 DScale=0 PME- 00:09.0 Network controller: AVM Audiovisuelles MKTG & Computer System GmbH Fritz!PCI v2.0 ISDN (rev 02) Subsystem: AVM Audiovisuelles MKTG & Computer System GmbH: Unknown device 0e00 Control: I/O+ Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr+ Stepping- SERR+ FastB2B- Status: Cap+ 66Mhz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- Interrupt: pin A routed to IRQ 5 Region 0: Memory at dd0c2000 (32-bit, non-prefetchable) [size=32] Region 1: I/O ports at dc00 [size=32] Capabilities: [40] Power Management version 2 Flags: PMEClk- AuxPwr- DSI- D1- D2+ PME- Status: D0 PME-Enable- DSel=0 DScale=0 PME- 00:0a.0 Network controller: Winbond Electronics Corp W6692 (rev 01) Subsystem: Technical Corp.: Unknown device 5678 Control: I/O+ Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr+ Stepping- SERR+ FastB2B- Status: Cap- 66Mhz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- Interrupt: pin A routed to IRQ 7 Region 0: Memory at dd0c3000 (32-bit, non-prefetchable) [size=4K] Region 1: I/O ports at e000 [size=256] 00:0d.0 Ethernet controller: Intel Corp. 82557/8/9 [Ethernet Pro 100] (rev 0c) Subsystem: IBM 10/100 Ethernet Server Adapter Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr+ Stepping- SERR+ FastB2B- Status: Cap+ 66Mhz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- Latency: 8 min, 56 max, 32 set, cache line size 08 Interrupt: pin A routed to IRQ 11 Region 0: Memory at dd0c1000 (32-bit, non-prefetchable) [size=4K] Region 1: I/O ports at e400 [size=64] Region 2: Memory at dd080000 (32-bit, non-prefetchable) [size=128K] Expansion ROM at <unassigned> [disabled] [size=64K] Capabilities: [dc] Power Management version 2 Flags: PMEClk- AuxPwr- DSI+ D1+ D2+ PME+ Status: D0 PME-Enable- DSel=0 DScale=2 PME- 00:0e.0 Ethernet controller: Intel Corp. 82557/8/9 [Ethernet Pro 100] (rev 0c) Subsystem: IBM 10/100 Ethernet Server Adapter Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr+ Stepping- SERR+ FastB2B- Status: Cap+ 66Mhz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- Latency: 8 min, 56 max, 32 set, cache line size 08 Interrupt: pin A routed to IRQ 10 Region 0: Memory at dd0c0000 (32-bit, non-prefetchable) [size=4K] Region 1: I/O ports at e800 [size=64] Region 2: Memory at dd0a0000 (32-bit, non-prefetchable) [size=128K] Expansion ROM at <unassigned> [disabled] [size=64K] Capabilities: [dc] Power Management version 2 Flags: PMEClk- AuxPwr- DSI+ D1+ D2+ PME+ Status: D0 PME-Enable- DSel=0 DScale=2 PME- 00:0f.0 VGA compatible controller: S3 Inc. Savage 4 (rev 06) (prog-if 00 [VGA]) Subsystem: IBM: Unknown device 01c5 Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr+ Stepping- SERR- FastB2B- Status: Cap+ 66Mhz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- Latency: 4 min, 255 max, 248 set, cache line size 08 Interrupt: pin A routed to IRQ 5 Region 0: Memory at dd000000 (32-bit, non-prefetchable) [size=512K] Region 1: Memory at d0000000 (32-bit, prefetchable) [size=128M] Expansion ROM at <unassigned> [disabled] [size=64K] Capabilities: [dc] Power Management version 2 Flags: PMEClk- AuxPwr- DSI+ D1+ D2+ PME- Status: D0 PME-Enable- DSel=0 DScale=0 PME- [7.6.] SCSI information (from /proc/scsi/scsi) No SCSI ! [7.7.] Other information that might be relevant to the problem (please look in /proc and include all information that you think to be relevant): [7.8] Other notes, patches, fixes, workarounds: Patch that worked around the kernel crash: ----------------------------- snip ----------------------------------- --- isdn_ppp.c Fri Apr 11 09:03:09 2003 +++ isdn_ppp.c.new Thu Apr 10 14:37:43 2003 @@ -1174,9 +1174,10 @@ lp = isdn_net_get_locked_lp(nd); if (!lp) { - printk(KERN_WARNING "%s: all channels busy - requeuing!\n", netdev->name); + printk(KERN_WARNING "isdn_ppp.c:1177: %s: all channels busy - requeuing!\n", netdev->name); retval = 1; - goto unlock; + //goto unlock; + goto out; } /* we have our lp locked from now on */ ----------------------------- snip ----------------------------------- -- Mr Arno Wilhelm phion Information Technologies GmbH System Engineer Eduard-Bodem-Gasse 1 A-6020 Innsbruck www.phion.com tel: +43 512 39 45 45 fax: +43 512 39 45 45 20 - To unsubscribe from this list: send the line "unsubscribe linux-isdn" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html