[PATCH net] drivers: net: xgene: fix possible use after free

From: Eric Dumazet
Date: Wed Nov 25 2015 - 12:02:23 EST


From: Eric Dumazet <edumazet@xxxxxxxxxx>

Once TX has been enabled on a NIC, it is illegal to access skb,
as this skb might have been freed by another cpu, from TX completion
handler.

Signed-off-by: Eric Dumazet <edumazet@xxxxxxxxxx>
Reported-by: Mark Rutland <mark.rutland@xxxxxxx>
Tested-by: Mark Rutland <mark.rutland@xxxxxxx>
Cc: Iyappan Subramanian <isubramanian@xxxxxxx>
---
drivers/net/ethernet/apm/xgene/xgene_enet_main.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/ethernet/apm/xgene/xgene_enet_main.c b/drivers/net/ethernet/apm/xgene/xgene_enet_main.c
index 1adfe7036843..9147a0107c44 100644
--- a/drivers/net/ethernet/apm/xgene/xgene_enet_main.c
+++ b/drivers/net/ethernet/apm/xgene/xgene_enet_main.c
@@ -450,12 +450,12 @@ static netdev_tx_t xgene_enet_start_xmit(struct sk_buff *skb,
return NETDEV_TX_OK;
}

- pdata->ring_ops->wr_cmd(tx_ring, count);
skb_tx_timestamp(skb);

pdata->stats.tx_packets++;
pdata->stats.tx_bytes += skb->len;

+ pdata->ring_ops->wr_cmd(tx_ring, count);
return NETDEV_TX_OK;
}



--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/