aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--net/core/netpoll.c10
1 files changed, 3 insertions, 7 deletions
diff --git a/net/core/netpoll.c b/net/core/netpoll.c
index 9cb781830380..377d1e7257b5 100644
--- a/net/core/netpoll.c
+++ b/net/core/netpoll.c
@@ -279,14 +279,10 @@ static void netpoll_send_skb(struct netpoll *np, struct sk_buff *skb)
279 * network drivers do not expect to be called if the queue is 279 * network drivers do not expect to be called if the queue is
280 * stopped. 280 * stopped.
281 */ 281 */
282 if (netif_queue_stopped(np->dev)) { 282 status = NETDEV_TX_BUSY;
283 netif_tx_unlock(np->dev); 283 if (!netif_queue_stopped(np->dev))
284 netpoll_poll(np); 284 status = np->dev->hard_start_xmit(skb, np->dev);
285 udelay(50);
286 continue;
287 }
288 285
289 status = np->dev->hard_start_xmit(skb, np->dev);
290 netif_tx_unlock(np->dev); 286 netif_tx_unlock(np->dev);
291 287
292 /* success */ 288 /* success */