Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 6192b54b authored by David S. Miller's avatar David S. Miller
Browse files

[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: default avatarDavid S. Miller <davem@davemloft.net>
parent 2ac6608c
Loading
Loading
Loading
Loading
+1 −2
Original line number Diff line number Diff line
@@ -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);
	}

	/*