Bug 75464 - ISDN ippp channel bundling results kernel panic when ISP hangs up master before slave
Summary: ISDN ippp channel bundling results kernel panic when ISP hangs up master befo...
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Red Hat Linux
Classification: Retired
Component: kernel
Version: 7.1
Hardware: i586
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Arjan van de Ven
QA Contact: Brian Brock
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2002-10-08 20:09 UTC by Mikko Rapeli
Modified: 2007-04-18 16:47 UTC (History)
0 users

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2003-12-17 00:58:59 UTC
Embargoed:


Attachments (Terms of Use)

Description Mikko Rapeli 2002-10-08 20:09:14 UTC
From Bugzilla Helper:
User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.2a) Gecko/20020910

Description of problem:
<the usual panic, I can write more details if needed>
INIT: version 2.78 reloading

isdn_ppp_xmit: lp->ppp_slot -1
---- cut here -----
Kernel BUG at sched.c: 739!
invalid operand 0000
ipchains hisax isdn slhc 8139too mii appletalkipx ipv6 ext3 jbd

CPU: 0
EIP: 0010:[<c0114fa9>] Not tainted
EFLAGS: 00010096
EIP is at schedule [kernel] 0x29 (2.4.18-5)
...
Process ping (pid: 13265, stackpage=c274500)
Stack:
...
Call Trace [<c0108a15>] reschedule [kernel] 0x5
Code: 0f 0b 5a 59 b8 00 e0 ff ff 21 e0 89 c2 be 00 bb 32 c0 c7 45

<0> Kernel panic: Aiee, killing interrupt handler!
In interrupt handler - not syncing
</the usual panic>

---<lots of data>---
# uname -a
Linux nalle 2.4.18-5 #1 Mon Jun 10 15:14:29 EDT 2002 i586 unknown
# cat /etc/redhat-release
Red Hat Linux release 7.1 (Seawolf)
# /sbin/lsmod
Module                  Size  Used by    Not tainted
ipchains               42952  70
hisax                 547172   3
isdn                  132448   3  [hisax]
slhc                    6540   2  [isdn]
8139too                16544   1
mii                     2344   0  [8139too]
appletalk              24236   0  (autoclean)
ipx                    20180   0  (autoclean)
ipv6                  154144  -1
ext3                   67392   1  (autoclean)
jbd                    48888   1  (autoclean) [ext3]
# cat /proc/pci
PCI devices found:
  Bus  0, device   0, function  0:
    Host bridge: Intel Corp. 430VX - 82437VX TVX [Triton VX] (rev 2).
      Master Capable.  Latency=32.
  Bus  0, device   7, function  0:
    ISA bridge: Intel Corp. 82371SB PIIX3 ISA [Natoma/Triton II] (rev 1).
  Bus  0, device   7, function  1:
    IDE interface: Intel Corp. 82371SB PIIX3 IDE [Natoma/Triton II] (rev
0).
      Master Capable.  Latency=32.
      I/O at 0x9000 [0x900f].
  Bus  0, device   8, function  0:
    VGA compatible controller: S3 Inc. ViRGE/DX or /GX (rev 1).
      Master Capable.  Latency=32.  Min Gnt=4.Max Lat=255.
      Non-prefetchable 32 bit memory at 0xe0000000 [0xe3ffffff].
  Bus  0, device   9, function  0:
    Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C
(rev 16).
      IRQ 11.
      Master Capable.  Latency=32.  Min Gnt=32.Max Lat=64.
      I/O at 0x6100 [0x61ff].
      Non-prefetchable 32 bit memory at 0xe4000000 [0xe40000ff].
  Bus  0, device  11, function  0:
    Network controller: PCI device 1050:6692 (Winbond Electronics Corp)
(rev 255).
      IRQ 9.
      Prefetchable 32 bit memory at 0xe4001000 [0xe4001fff].
      I/O at 0x6200 [0x62ff].

# isdnctrl list ippp0

Current setup of interface 'ippp0':

EAZ/MSN:                5424023
Phone number(s):
  Outgoing:             328500
  Incoming:
Dial mode:              manual
Secure:                 off
Callback:               off
Reject before Callback: on
Callback-delay:         3
Dialmax:                1
Hangup-Timeout:         0
Incoming-Hangup:        on
ChargeHangup:           off
Charge-Units:           0
Charge-Interval:        0
Layer-2-Protocol:       hdlc
Layer-3-Protocol:       trans
Encapsulation:          syncppp
Slave Interface:        ippp1
Slave delay:            10
Slave trigger:          6000 cps
Master Interface:       None
Pre-Bound to:           Nothing
PPP-Bound to:           0

# isdnctrl list ippp1

Current setup of interface 'ippp1':

EAZ/MSN:                5424023
Phone number(s):
  Outgoing:             328500
  Incoming:
Dial mode:              auto
Secure:                 off
Callback:               off
Reject before Callback: on
Callback-delay:         5
Dialmax:                1
Hangup-Timeout:         0
Incoming-Hangup:        on
ChargeHangup:           off
Charge-Units:           0
Charge-Interval:        0
Layer-2-Protocol:       hdlc
Layer-3-Protocol:       trans
Encapsulation:          syncppp
Slave Interface:        None
Slave delay:            10
Slave trigger:          6000 cps
Master Interface:       ippp0
Pre-Bound to:           Nothing
PPP-Bound to:           Nothing

# less /var/log/messages
<snip>
...
Oct  8 09:59:56 nalle kernel: ippp0: remote hangup
Oct  8 09:59:56 nalle kernel: ippp0: Chargesum is 0
Oct  8 09:59:56 nalle kernel: ippp1: remote hangup
Oct  8 09:59:56 nalle kernel: ippp1: Chargesum is 0
Oct  8 10:44:20 nalle kernel: ippp0: dialing 1 328500...
Oct  8 10:44:22 nalle kernel: isdn_net: ippp0 connected
Oct  8 10:44:26 nalle kernel: ippp1: dialing 1 328500...
Oct  8 10:44:26 nalle kernel: isdn_net: ippp1 connected
Oct  8 10:44:27 nalle modprobe: modprobe: Can't locate module ippp1
...
<Here's the reason for Aieee, panic>
Oct  8 13:15:04 nalle kernel: ippp1: remote hangup
Oct  8 13:15:04 nalle kernel: ippp1: Chargesum is 0
<And after the restart>
Oct  8 17:14:01 nalle syslogd 1.4-0: restart.
Oct  8 17:14:01 nalle syslog: syslogd startup succeeded

Oct  8 17:14:07 nalle kernel: ISDN subsystem Rev:
1.1.4.1/1.1.4.1/1.1.4.1/1.1.4.1/1.1.4.1/1.1.4.1 loaded
Oct  8 17:14:07 nalle kernel: HiSax: Linux Driver for passive ISDN cards
Oct  8 17:14:07 nalle kernel: HiSax: Version 3.5 (module)
Oct  8 17:14:07 nalle kernel: HiSax: Layer1 Revision 1.1.4.1
Oct  8 17:14:07 nalle kernel: HiSax: Layer2 Revision 1.1.4.1
Oct  8 17:14:07 nalle kernel: HiSax: TeiMgr Revision 1.1.4.1
Oct  8 17:14:07 nalle kernel: HiSax: Layer3 Revision 1.1.4.1
Oct  8 17:14:07 nalle kernel: HiSax: LinkLayer Revision 1.1.4.1
Oct  8 17:14:07 nalle kernel: HiSax: Approval certification failed because
of
Oct  8 17:14:07 nalle kernel: HiSax: unauthorized source code changes
Oct  8 17:14:07 nalle kernel: HiSax: Card 1 Protocol EDSS1 Id=HiSax (0)
Oct  8 17:14:07 nalle kernel: HiSax: W6692 driver Rev. 1.1.4.1
Oct  8 17:14:08 nalle kernel: Found: Winbond W6692, I/O base: 0x6200, irq:
9
Oct  8 17:14:08 nalle kernel: HiSax: W6692 config irq:9 I/O:6200
Oct  8 17:14:08 nalle kernel: W6692: Winbond W6692 version (0): W6692 V00
Oct  8 17:14:08 nalle kernel: W6692 ISTA=0x0
Oct  8 17:14:08 nalle kernel: W6692 IMASK=0xFF
Oct  8 17:14:08 nalle kernel: W6692 D_EXIR=0x0
Oct  8 17:14:08 nalle kernel: W6692 D_EXIM=0xFF
Oct  8 17:14:08 nalle kernel: W6692 D_RSTA=0xA0
Oct  8 17:14:08 nalle kernel: Winbond 6692: IRQ 9 count 0
Oct  8 17:14:08 nalle kernel: Winbond 6692: IRQ 9 count 5
Oct  8 17:14:08 nalle kernel: HiSax: DSS1 Rev. 1.1.4.1
Oct  8 17:14:08 nalle kernel: HiSax: 2 channels added
Oct  8 17:14:08 nalle kernel: HiSax: MAX_WAITING_CALLS added
...
Oct  8 17:14:09 nalle kernel: device ippp0 entered promiscuous mode
Oct  8 17:14:09 nalle kernel: ip_conntrack (320 buckets, 2560 max)
Oct  8 17:14:14 nalle snort[790]: Snort initialization completed
successfully, Snort running
Oct  8 17:14:17 nalle ipchains: Applying ipchains firewall rules succeeded
Oct  8 17:14:18 nalle crond: crond startup succeeded
Oct  8 17:14:18 nalle rhnsd: rhnsd startup succeeded
Oct  8 17:14:19 nalle rhnsd[1317]: Red Hat Network Services Daemon starting
up.
Oct  8 17:14:20 nalle linuxconf: Running Linuxconf hooks:  succeeded
Oct  8 17:14:20 nalle kernel: ippp0: dialing 1 328500...
Oct  8 17:14:20 nalle kernel: ippp1: dialing 1 328500...
Oct  8 17:14:21 nalle kernel: isdn_net: ippp0 connected
Oct  8 17:14:21 nalle kernel: isdn_net: ippp1 connected
Oct  8 17:14:21 nalle modprobe: modprobe: Can't locate module ippp1
</snip>


Version-Release number of selected component (if applicable):


How reproducible:
Didn't try

Steps to Reproduce:
1. start the isdn connection: isdnctrl dial ippp0;sleep 5;isdnctrl dial ippp1
2. wait until the ISP hangs up due to idle timeout or something
3. if the ISP hangs ippp0 before ippp1, panic will come when sending something
	
Actual Results:  My ISDN Internet gateway (originally RH 7.1, now upgraded party
to 7.3)
has not seen better uptimes than 50 days in the last 13 months. So

Expected Results:  Eh, kernel should not panic.

Additional info:
If I could figure out howto trigger the ISDN HiSax module to receive a remote
hang up, this could be debugged further. I've tried every RH kernel since 7.1
and even vanilla 2.4.18 and 2.2.20. They all panic when my mean ISP hangs up.
The finnish Linux newsgroup people said
(http://groups.google.com/groups?hl=en&lr=&ie=UTF-8&oe=UTF-8&threadm=Pine.SOL.4.44.0203221916180.12279-100000%40stekt57&rnum=1&prev=/groups%3Fq%3Dlinux%2Bisdn%2Bkernel%2Bpanic%26hl%3Den%26lr%3D%26ie%3DUTF-8%26oe%3DUTF-8%26selm%3DPine.SOL.4.44.0203221916180.12279-100000%2540stekt57%26rnum%3D1),
that the problem lies in the MPPP module of the kernel.

Comment 1 Mikko Rapeli 2002-10-08 21:33:47 UTC
Asked Karsten Keil <kkeil> about the issue and 2.4.20pre has the fix. 

http://www.kernel.org/pub/linux/kernel/v2.4/testing/patch-2.4.20.log
<snip>
Kai Germaschewski <kai.de>:
  o Add support for ISDN card Eicon Diva 2.02
  o Move PCI device id to include/linux/pci_ids.h
  o Add support for ISDN card Formula-n enter:now, a.k.a. Gerdes Power ISDN
  o Add in-kernel ISAPnP support to HiSax driven ISDN cards
  o Doc changes / Cleanup for ISDN ISAPnP changes
  o ISDN MPPP crash fix
</snip>

At least I'll try the 2.4.20pre...
-Mikko


Note You need to log in before you can comment on or make changes to this bug.