summaryrefslogtreecommitdiffstats
path: root/drivers/net/ethernet/cavium/liquidio/lio_vf_main.c
diff options
context:
space:
mode:
authorSatanand Burla2017-01-26 20:52:35 +0100
committerDavid S. Miller2017-01-26 21:42:18 +0100
commit80c8eae6ee66b52e1304c9ffd02b4472d5976608 (patch)
treeda38ce8ca20632bee3bab5b34443fe7632d9b879 /drivers/net/ethernet/cavium/liquidio/lio_vf_main.c
parentMerge tag 'batadv-next-for-davem-20170126' of git://git.open-mesh.org/linux-m... (diff)
downloadkernel-qcow2-linux-80c8eae6ee66b52e1304c9ffd02b4472d5976608.tar.gz
kernel-qcow2-linux-80c8eae6ee66b52e1304c9ffd02b4472d5976608.tar.xz
kernel-qcow2-linux-80c8eae6ee66b52e1304c9ffd02b4472d5976608.zip
liquidio: Avoid accessing skb after submitting to input queue
Accessing skb after submitting to input queue can cause access to stale pointers if the skb ends up being transmitted and freed by that time. Signed-off-by: Satanand Burla <satananda.burla@cavium.com> Signed-off-by: Derek Chickles <derek.chickles@cavium.com> Signed-off-by: Raghu Vatsavayi <raghu.vatsavayi@cavium.com> Signed-off-by: Felix Manlunas <felix.manlunas@cavium.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/cavium/liquidio/lio_vf_main.c')
-rw-r--r--drivers/net/ethernet/cavium/liquidio/lio_vf_main.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/drivers/net/ethernet/cavium/liquidio/lio_vf_main.c b/drivers/net/ethernet/cavium/liquidio/lio_vf_main.c
index e96cf6cdecfd..a6587d7019ed 100644
--- a/drivers/net/ethernet/cavium/liquidio/lio_vf_main.c
+++ b/drivers/net/ethernet/cavium/liquidio/lio_vf_main.c
@@ -2433,11 +2433,11 @@ static int liquidio_xmit(struct sk_buff *skb, struct net_device *netdev)
netif_trans_update(netdev);
- if (skb_shinfo(skb)->gso_size)
- stats->tx_done += skb_shinfo(skb)->gso_segs;
+ if (tx_info->s.gso_segs)
+ stats->tx_done += tx_info->s.gso_segs;
else
stats->tx_done++;
- stats->tx_tot_bytes += skb->len;
+ stats->tx_tot_bytes += ndata.datasize;
return NETDEV_TX_OK;