On Thu, Nov 22, 2001 at 09:14:12AM +0100, Krabel, Karsten wrote:
Hallo allerseits,
nachdem ich nun mein hausinternes Netzwerk mit SUSE 7.3 zum laufen gebracht habe wurde die ISDN-Karte (A1 ISA) in Betrieb genommen. Die Verbindung starte ich zur Zeit noch per Hand (ich muß noch die Automatikstelle suchen) und das Internet klappt. Nur wenn ich nun den Sever runterfahren will bleibt er bei der Meldung
Shutting down network device and ipppd for ippp0
stehen und beendet den Shutdown nicht (auch nicht nach einer Stunde). Wo kann ich nun sehen wo das Problem liegt.
Es ist ein kernel Fehler, hier der Patch, ein kernel update steht auch ftp.suse.com bzw. den mirrors. -- Karsten Keil SuSE Labs ISDN development diff -ur x/linux-2.4.10.SuSE-1/drivers/isdn/isdn_net.c linux-2.4.10.SuSE-1/drivers/isdn/isdn_net.c --- x/linux-2.4.10.SuSE-1/drivers/isdn/isdn_net.c Mon Sep 24 15:53:51 2001 +++ linux-2.4.10.SuSE-1/drivers/isdn/isdn_net.c Wed Sep 26 16:32:12 2001 @@ -888,7 +888,8 @@ isdn_all_eaz(lp->isdn_device, lp->isdn_channel); } isdn_net_unbind_channel(lp); - netdev_event(d,NETDEV_REBOOT); + if (!lp->master) /* never send this event to an slave device */ + netdev_event(d,NETDEV_REBOOT); } typedef struct { diff -ur x/linux-2.4.10.SuSE-1/net/core/dev.c linux-2.4.10.SuSE-1/net/core/dev.c --- x/linux-2.4.10.SuSE-1/net/core/dev.c Mon Sep 24 15:53:51 2001 +++ linux-2.4.10.SuSE-1/net/core/dev.c Wed Sep 26 16:39:59 2001 @@ -626,15 +626,20 @@ */ void netdev_event(struct net_device *dev, int event) { - struct dev_tq *tq = kmalloc(sizeof(*tq), GFP_ATOMIC); + struct dev_tq *tq = kmalloc(sizeof(*tq), GFP_ATOMIC); if (!tq) return; + memset(tq, 0, sizeof(*tq)); dev_hold(dev); tq->dev = dev; tq->event = event; tq->tq.routine = netdev_event_callback; tq->tq.data = tq; - schedule_task(&tq->tq); + if (schedule_task(&tq->tq) == 0) { + printk(KERN_WARNING __FUNCTION__ + ": task for event %x not scheduled\n", event); + dev_put(dev); + } } /** -- Karsten Keil SuSE Labs ISDN development