From: Matt Mackall From: Stelian Pop Fix for handling of full transmit queue when netpoll trap is enabled. --- 25-akpm/net/core/netpoll.c | 12 +++--------- 1 files changed, 3 insertions(+), 9 deletions(-) diff -puN net/core/netpoll.c~netpoll-transmit-busy-bugfix net/core/netpoll.c --- 25/net/core/netpoll.c~netpoll-transmit-busy-bugfix 2004-04-10 14:56:57.876228096 -0700 +++ 25-akpm/net/core/netpoll.c 2004-04-10 14:56:57.879227640 -0700 @@ -163,21 +163,15 @@ repeat: spin_lock(&np->dev->xmit_lock); np->dev->xmit_lock_owner = smp_processor_id(); - 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); /* transmit busy */ - if(status) + if(status) { + netpoll_poll(np); goto repeat; + } } void netpoll_send_udp(struct netpoll *np, const char *msg, int len) _