|
@@ -93,7 +93,7 @@ static inline int handle_dev_cpu_collision(struct sk_buff *skb,
|
|
* detect it by checking xmit owner and drop the packet when
|
|
* detect it by checking xmit owner and drop the packet when
|
|
* deadloop is detected. Return OK to try the next skb.
|
|
* deadloop is detected. Return OK to try the next skb.
|
|
*/
|
|
*/
|
|
- kfree_skb(skb);
|
|
|
|
|
|
+ kfree_skb_list(skb);
|
|
net_warn_ratelimited("Dead loop on netdevice %s, fix it urgently!\n",
|
|
net_warn_ratelimited("Dead loop on netdevice %s, fix it urgently!\n",
|
|
dev_queue->dev->name);
|
|
dev_queue->dev->name);
|
|
ret = qdisc_qlen(q);
|
|
ret = qdisc_qlen(q);
|
|
@@ -110,9 +110,9 @@ static inline int handle_dev_cpu_collision(struct sk_buff *skb,
|
|
}
|
|
}
|
|
|
|
|
|
/*
|
|
/*
|
|
- * Transmit one skb, and handle the return status as required. Holding the
|
|
|
|
- * __QDISC___STATE_RUNNING bit guarantees that only one CPU can execute this
|
|
|
|
- * function.
|
|
|
|
|
|
+ * Transmit possibly several skbs, and handle the return status as
|
|
|
|
+ * required. Holding the __QDISC___STATE_RUNNING bit guarantees that
|
|
|
|
+ * only one CPU can execute this function.
|
|
*
|
|
*
|
|
* Returns to the caller:
|
|
* Returns to the caller:
|
|
* 0 - queue is empty or throttled.
|
|
* 0 - queue is empty or throttled.
|