net: broadcom: bcm4908_enet: update TX stats after actual transmission
authorRafał Miłecki <rafal@milecki.pl>
Thu, 27 Oct 2022 11:24:30 +0000 (13:24 +0200)
committerJakub Kicinski <kuba@kernel.org>
Thu, 27 Oct 2022 17:27:53 +0000 (10:27 -0700)
commitef3556ee16c68735ec69bd08df41d1cd83b14ad3
tree69a3aac5d6c4bd90b17b881a5aaf8153f196f811
parentbc520f5e251e5b3ddc3a1b728f00732d720011e2
net: broadcom: bcm4908_enet: update TX stats after actual transmission

Queueing packets doesn't guarantee their transmission. Update TX stats
after hardware confirms consuming submitted data.

This also fixes a possible race and NULL dereference.
bcm4908_enet_start_xmit() could try to access skb after freeing it in
the bcm4908_enet_poll_tx().

Reported-by: Florian Fainelli <f.fainelli@gmail.com>
Fixes: 4feffeadbcb2e ("net: broadcom: bcm4908enet: add BCM4908 controller driver")
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
Link: https://lore.kernel.org/r/20221027112430.8696-1-zajec5@gmail.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/ethernet/broadcom/bcm4908_enet.c