|
@@ -2280,11 +2280,13 @@ static int skge_xmit_frame(struct sk_buff *skb, struct net_device *dev)
|
|
|
}
|
|
|
|
|
|
if (unlikely(skge->tx_avail < skb_shinfo(skb)->nr_frags +1)) {
|
|
|
- netif_stop_queue(dev);
|
|
|
- spin_unlock_irqrestore(&skge->tx_lock, flags);
|
|
|
+ if (!netif_stopped(dev)) {
|
|
|
+ netif_stop_queue(dev);
|
|
|
|
|
|
- printk(KERN_WARNING PFX "%s: ring full when queue awake!\n",
|
|
|
- dev->name);
|
|
|
+ printk(KERN_WARNING PFX "%s: ring full when queue awake!\n",
|
|
|
+ dev->name);
|
|
|
+ }
|
|
|
+ spin_unlock_irqrestore(&skge->tx_lock, flags);
|
|
|
return NETDEV_TX_BUSY;
|
|
|
}
|
|
|
|