e1000e: Do not allow requeue of freed skb
Subsystems (2)
PATCH 1/1 e1000e: Do not allow requeue of freed skb
From: Krishna Kumar <[email protected]>
Returning BUSY will make qdisc_restart enqueue the skb which was already freed. The bad skb was correctly freed and we should return NETDEV_TX_OK.
First spotted by Jeff Garzik on 08/13/07.
Signed-off-by Krishna Kumar <[email protected]>
Signed-off-by Auke Kok <[email protected]>
---
drivers/net/e1000e/netdev.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)
drivers/net/e1000e/netdev.c +1 -1
@@ -3537,7 +3537,7 @@ static int e1000_xmit_frame(struct sk_buff *skb, struct net_device *netdev)/* handle pci_map_single() error in e1000_tx_map */ dev_kfree_skb_any (skb);spin_unlock_irqrestore (&adapter->tx_queue_lock, irq_flags); -return NETDEV_TX_BUSY ; +return NETDEV_TX_OK ; }e1000_tx_queue (adapter, tx_flags, count);
Jeff Garzik
AppliedQuoted 19 lines · Auke Kok
From: Krishna Kumar <[email protected]>
Returning BUSY will make
qdisc_restartenqueue the skb which was already freed. The bad skb was correctly freed and we should returnNETDEV_TX_OK.First spotted by Jeff Garzik on 08/13/07.
Signed-off-by Krishna Kumar <[email protected]>Signed-off-by Auke Kok <[email protected]>---
drivers/net/e1000e/netdev.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)drivers/net/e1000e/netdev.c +0
-0
drivers/net/e1000e/netdev.c static int e1000_xmit_frame(struct sk_buff *skb, struct net_device *netdev) · line 3540
Quoted 5 lines
drivers/net/e1000e/netdev.c +1
-1@@ -3537,7 +3537,7 @@ static int e1000_xmit_frame(struct sk_buff *skb, struct net_device *netdev)/* handle pci_map_single() error in e1000_tx_map */ dev_kfree_skb_any (skb);spin_unlock_irqrestore (&adapter->tx_queue_lock, irq_flags); -return NETDEV_TX_BUSY ; +return NETDEV_TX_OK ;
applied