Bug report: leak in isdn/module related part

Carlo Wood (carlo@runaway.xs4all.nl)
Tue, 1 Apr 1997 10:38:02 +0200 (MET DST)

This is a bug report related to either:

kernel, modules (loading/unloading), isdn.


I am sorry this is a somewhat vague report, but I honestly believe there
IS a bug, and maybe someone can reproduce it.

I have two PCs, one of them, a 486DX50 with 16 Mb ram, I use solely as
firewall and to handle my E-mail. This machine was up now 28 days
afterwhich ISDN didn't want to load any more.

I use a script to start and stop ISDN because there is another problem
with isdn that when I try to dial in, but the line is busy - it never
recovers unless I unload the isdn module from the kernel and reload it
again. (so, 'teles' and 'isdn' are modules).

I suspect therefore that I did run this script about 100 times (this is
a guess, it could be more), after which I get this error:

Apr 1 09:56:51 runaway kernel: Couldn't get a free page.....
Apr 1 09:56:51 runaway kernel: isdn: Could not allocate device-struct.
Apr 1 09:56:51 runaway modprobe: Can't locate module char-major-45
Apr 1 09:56:54 runaway last message repeated 9 times
Apr 1 09:56:55 runaway modprobe: Can't locate module ippp0
Apr 1 09:56:57 runaway last message repeated 6 times
Apr 1 09:56:58 runaway modprobe: Can't locate module char-major-45

All of these errors are probably related to the first one:
"Couldn't get a free page.....".

The script I use to load/unload isdn is attached below.
It must be run as root of course. The above error occured while
I was trying to load, so it was run as "isdn start".
To unload, I run it as "isdn stop". I do this a few times a day.

A reboot solved this problem.

I run kernel 2.0.28.

This is NOT a joke (noted because of the date "Apr 1").

Hope this will help to fix something :),


PS I am not subbed to this list.

 carlo@runaway.xs4all.nl, Run @ IRC.

ircd development: http://www.xs4all.nl/~carlo17/ircd-dev

-----------<cut here--------------------- #!/bin/sh PATH=/bin:/sbin:/usr/sbin

if [ $1 = Start -o $1 = start ]; then echo "Starting isdn system..."; /bin/cp /etc/hosts.isdn /etc/hosts /sbin/insmod isdn /sbin/insmod teles io=0,15,0xd80,2 teles_id=MyTeles /usr/sbin/telesctrl MyTeles 1 4 /usr/sbin/isdnctrl addif ippp0 /usr/sbin/isdnctrl addphone ippp0 out 4229700 /usr/sbin/isdnctrl eaz ippp0 204511755 /usr/sbin/isdnctrl l2_prot ippp0 hdlc /usr/sbin/isdnctrl l3_prot ippp0 trans /usr/sbin/isdnctrl encap ippp0 syncppp /usr/sbin/isdnctrl huptimeout ippp0 300 /usr/sbin/isdnctrl chargehup ippp0 off /usr/sbin/isdnctrl secure ippp0 on echo "Configuring ippp0 device..." /sbin/ifconfig ippp0 pointopoint metric 1 -arp echo "Setting up default route..." /sbin/route add default dev ippp0 echo "Starting ppp daemon..."; /usr/sbin/ipppd user xxxxxxxx \ ipcp-accept-local ipcp-accept-remote \ -vj -vjccomp -ac -pc \ -detach \ mru 1524 \ -bsdcomp \ useifip \ /dev/ippp0 & /usr/local/bin/xisdnload -bg grey -label ISDN -geometry 154x144+580+0 -update 2 -hl blue -online red -jumpscroll 1 & echo "Ready." elif [ $1 = Stop -o $1 = stop ]; then /usr/bin/killall xisdnload echo "Killing ppp daemon..." /usr/bin/killall -9 ipppd echo "Removing default route..." /sbin/route del default /sbin/route del echo "Bringing ippp0 device down..." /sbin/ifconfig ippp0 down echo "Bringing isdn down..." /usr/sbin/isdnctrl delif ippp0 /sbin/rmmod teles isdn else echo "Usage $0 [ Start | Stop ]"; fi