[NET] napi: use non-interruptible sleep in napi_disable
authorBenjamin Herrenschmidt <benh@kernel.crashing.org>
Fri, 26 Oct 2007 11:23:22 +0000 (04:23 -0700)
committerDavid S. Miller <davem@davemloft.net>
Fri, 26 Oct 2007 11:23:22 +0000 (04:23 -0700)
The current napi_disable() uses msleep_interruptible() but doesn't
(and can't) exit in case there's a signal, thus ending up doing a
hot spin without a cpu_relax. Use uninterruptible sleep instead.

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Acked-by: Jeff Garzik <jeff@garzik.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/linux/netdevice.h

index 811024e..9b0c8f1 100644 (file)
@@ -390,7 +390,7 @@ static inline void napi_complete(struct napi_struct *n)
 static inline void napi_disable(struct napi_struct *n)
 {
        while (test_and_set_bit(NAPI_STATE_SCHED, &n->state))
-               msleep_interruptible(1);
+               msleep(1);
 }
 
 /**