Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 80c8eae6 authored by Satanand Burla's avatar Satanand Burla Committed by David S. Miller
Browse files

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: default avatarSatanand Burla <satananda.burla@cavium.com>
Signed-off-by: default avatarDerek Chickles <derek.chickles@cavium.com>
Signed-off-by: default avatarRaghu Vatsavayi <raghu.vatsavayi@cavium.com>
Signed-off-by: default avatarFelix Manlunas <felix.manlunas@cavium.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 49b3eb77
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -3316,11 +3316,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;

+3 −3
Original line number Diff line number Diff line
@@ -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;