From: David S. Miller Date: Thu, 28 Jul 2005 19:12:58 +0000 (-0700) Subject: [NET]: Fix busy waiting in dev_close(). X-Git-Tag: v2.6.13-rc5~109^2 X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=6192b54b845ed05cb838f86ca588cc625c703a09;p=linux-2.6 [NET]: Fix busy waiting in dev_close(). If the current task has signal_pending(), the loop we have to wait for the __LINK_STATE_RX_SCHED bit to clear becomes a pure busy-loop. Fixed by using msleep() instead of the hand-crafted version. Noticed by Andrew Morton. Signed-off-by: David S. Miller --- diff --git a/net/core/dev.c b/net/core/dev.c index ff9dc02923..52a3bf7ae1 100644 --- a/net/core/dev.c +++ b/net/core/dev.c @@ -901,8 +901,7 @@ int dev_close(struct net_device *dev) smp_mb__after_clear_bit(); /* Commit netif_running(). */ while (test_bit(__LINK_STATE_RX_SCHED, &dev->state)) { /* No hurry. */ - current->state = TASK_INTERRUPTIBLE; - schedule_timeout(1); + msleep(1); } /*