summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeff Garzik <jgarzik@pobox.com>2003-09-08 19:46:25 -0700
committerLinus Torvalds <torvalds@home.osdl.org>2003-09-08 19:46:25 -0700
commit84972baffd596f488994dfe19596a1bbdd7ecaca (patch)
treec281b6cd1e4d9f091a18910bebce04e9000d993c
parentcdce088e98375930e87e46e86f22957e02928062 (diff)
[PATCH] Fix netdev close
This should fix the "ifconfig down ... ifconfig up" problems some people have seen.
-rw-r--r--net/core/dev.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/net/core/dev.c b/net/core/dev.c
index 2cf887cee6d7..427100bd7f82 100644
--- a/net/core/dev.c
+++ b/net/core/dev.c
@@ -841,7 +841,11 @@ int dev_close(struct net_device *dev)
* 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.