netpoll: revert queue stopped change
PATCH 2/5 netpoll: revert queue stopped change
From: Jeff Moyer <[email protected]>
Here's the first of the broken out patch set. This puts the check for netif_queue_stopped back into netpoll_send_skb. Network drivers are not designed to have their hard_start_xmit routines called when the queue is stopped.
Signed-off-by Jeff Moyer <[email protected]>
Signed-off-by Matt Mackall <[email protected]>
net/core/netpoll.c renamed from net/core/netpoll.c.orig +12 -0
@@ -168,6 +168,18 @@ repeat:spin_lock (&np->dev->xmit_lock); np->dev->xmit_lock_owner =smp_processor_id (); +/* +* network drivers do not expect to be called if the queue is +* stopped. +*/ +if (netif_queue_stopped (np->dev)) { + np->dev->xmit_lock_owner =-1 ; +spin_unlock (&np->dev->xmit_lock); + +netpoll_poll (np); + goto repeat; + } + status = np->dev->hard_start_xmit (skb, np->dev); np->dev->xmit_lock_owner =-1 ;spin_unlock (&np->dev->xmit_lock);
Signature · 1 line
Mathematics is the supreme nostalgia of our time.