Messages in this thread Patch in this message | | | Date | Mon, 08 Sep 2003 18:15:26 -0400 | From | Jeff Garzik <> | Subject | [PATCH] Re: ifconfig up/down problem |
| |
Sven-Haegar Koch wrote: > hi... > > Short: ifconfig ethX down locks > > Kernel: 2.4.22-bk12 (same problem with 2.4.23-pre3) > eth0: eepro100 > eth1: orinoco_cs (orinoco mini-pci) > System: Toshiba Satellite Pro 4600 Laptop, P3 700Mhz > > Just after booting, no X startet yet, interface not yet initialized: > > aurora:~# ifconfig eth1 down > aurora:~# ifconfig eth1 up > aurora:~# ifconfig eth1 down > aurora:~# ifconfig eth1 up > aurora:~# ifconfig eth1 down > <--lock here, shell does not return, even ctrl-c does not help > > haegar@aurora:~$ ps axl|grep ifconfig > 4 0 1041 1035 9 0 1448 404 dev_cl S pts/0 0:00 ifconfig eth1 > > top shows ifconfig consuming 100% cpu, 100% system > > The same happens with eth0, there it takes only two up/down cycles, > perhaps because it is already configured with ipv4+ipv6 addresses, and the > same happens using '/sbin/ip link set eth0 up/down' too. > > Kernel 2.4.20-pre2-ac3 is ok (my last kernel, running for month')
Does the attached patch fix it?
Jeff
diff -Nru a/net/core/dev.c b/net/core/dev.c --- a/net/core/dev.c Mon Sep 8 18:14:36 2003 +++ b/net/core/dev.c Mon Sep 8 18:14:36 2003 @@ -851,7 +851,11 @@ * engine, but this requires more changes in devices. */ smp_mb__after_clear_bit(); /* Commit netif_running(). */ - netif_poll_disable(dev); + while (test_bit(__LINK_STATE_RX_SCHED, &dev->state)) { + /* No hurry. */ + current->state = TASK_INTERRUPTIBLE; + schedule_timeout(1); + } /* * Call the device specific close. This cannot fail. | |