net: fix network drivers ndo_start_xmit() return values (part 6)
Subsystems (2)
A single hamradio driver that appears to be unmaintained.
commit 2a3f9e1eb41a809168916bd70d3c24707d89a34b
Author: Patrick McHardy <[email protected]> Date: Fri Jun 12 17:19:15 2009 +0200
net: fix network drivers ndo_start_xmit() return values (part 6)
Fix up hamradio drivers that return an errno value to dev_queue_xmit(), causing it to print a warning an free the skb.
- bpqether: skb is freed: use after free
Compile tested only.
Signed-off-by Patrick McHardy <[email protected]>
drivers/net/hamradio/bpqether.c +2 -2
@@ -274,7 +274,7 @@ static int bpq_xmit(struct sk_buff *skb, struct net_device *dev)if ((newskb =skb_realloc_headroom (skb,AX25_BPQ_HEADER_LEN )) ==NULL ) {printk (KERN_WARNING "bpqether: out of memory\n" );kfree_skb (skb); -return -ENOMEM ; +return NETDEV_TX_OK ; }if (skb->sk !=NULL )
@@ -294,7 +294,7 @@ static int bpq_xmit(struct sk_buff *skb, struct net_device *dev)if ((dev =bpq_get_ether_dev (dev)) ==NULL ) { dev->stats.tx_dropped++;kfree_skb (skb); -return -ENODEV ; +return NETDEV_TX_OK ; } skb->protocol =ax25_type_trans (skb, dev);