net: stmmac: ensure that the device has released ownership before reading data
authorNiklas Cassel <niklas.cassel@axis.com>
Mon, 26 Feb 2018 21:47:08 +0000 (22:47 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 30 May 2018 05:52:37 +0000 (07:52 +0200)
commita3d4c34cdea992e137bed4cf66c03e2db6a324ec
tree9c5ccb398e93d55ede904a351cdd8c9674fcd50e
parent957094fcc06f2a3f519c13ae8644c0ee9527139f
net: stmmac: ensure that the device has released ownership before reading data

[ Upstream commit a6b25da5e7ba212af5826a662e6a035a79bffabd ]

According to Documentation/memory-barriers.txt, we need to use a
dma_rmb() after reading the status/own bit, to ensure that all
descriptor fields are read after reading the own bit.

This way, we ensure that the DMA engine is done with the DMA
descriptor before we read the other descriptor fields, e.g. reading
the tx hardware timestamp (if PTP is enabled).

Signed-off-by: Niklas Cassel <niklas.cassel@axis.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c