From: Eric Dumazet Date: Sun, 19 Jun 2011 20:26:15 +0000 (+0000) Subject: netxen: fix race in skb->len access X-Git-Tag: v3.0-rc4~5^2~2 X-Git-Url: https://openfabrics.org/gitweb/?a=commitdiff_plain;h=c82b9d7fe7464aec78210544948564ffe3bb2d2b;p=~emulex%2Finfiniband.git netxen: fix race in skb->len access As soon as skb is given to hardware, TX completion can free skb under us. Therefore, we should update dev stats before kicking the device. Signed-off-by: Eric Dumazet CC: Amit Kumar Salecha Signed-off-by: David S. Miller --- diff --git a/drivers/net/netxen/netxen_nic_main.c b/drivers/net/netxen/netxen_nic_main.c index b644383017f..c0788a31ff0 100644 --- a/drivers/net/netxen/netxen_nic_main.c +++ b/drivers/net/netxen/netxen_nic_main.c @@ -1965,11 +1965,11 @@ netxen_nic_xmit_frame(struct sk_buff *skb, struct net_device *netdev) netxen_tso_check(netdev, tx_ring, first_desc, skb); - netxen_nic_update_cmd_producer(adapter, tx_ring); - adapter->stats.txbytes += skb->len; adapter->stats.xmitcalled++; + netxen_nic_update_cmd_producer(adapter, tx_ring); + return NETDEV_TX_OK; drop_packet: