hp100.c: don't reference skb after passing it to netif_rx
PATCH 1/1 hp100.c: don't reference skb after passing it to netif_rx
hey, its a flood! 8)
Em Mon, Feb 26, 2001 at 08:33:59PM -0300, Arnaldo Carvalho de Melo escreveu:
Hi,
I've just read davem's post at netdev about the brokeness of
referencing skbs after passing it to netif_rx, so please consider applying this patch. Ah, this was just added to the Janitor's TODO list at
http://bazar.conectiva.com.br/~acme/TODO and I'm doing a quick audit in the net drivers searching for this, maybe some more patches will follow.
- Arnaldo
drivers/net/hp100.c +4 -5
@@ -1967,11 +1967,6 @@insl ( ioaddr +HP100_REG_DATA32 , ptr, pkt_len >>2 ); skb->protocol =eth_type_trans ( skb, dev ); - -netif_rx ( skb ); - dev->last_rx = jiffies; - lp->stats.rx_packets++; - lp->stats.rx_bytes += pkt_len;#ifdef HP100_DEBUG_RX printk( "hp100: %s: rx: %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x\n",
@@ -1979,6 +1974,10 @@ ptr[0 ], ptr[1 ], ptr[2 ], ptr[3 ], ptr[4 ], ptr[5 ], ptr[ 6 ], ptr[ 7 ], ptr[ 8 ], ptr[ 9 ], ptr[ 10 ], ptr[ 11 ] );#endif +netif_rx ( skb ); + dev->last_rx = jiffies; + lp->stats.rx_packets++; + lp->stats.rx_bytes += pkt_len; }/* Indicate the card that we have got the packet */