On 3/23/20 8:09 AM, Ramon Fried wrote: > On Mon, Mar 23, 2020 at 3:45 AM Marek Vasut <[email protected]> wrote: >> >> The DMA may attempt to write a DMA descriptor in the ring while it is >> being updated. By writing the DMA descriptor buffer address to 0, it >> is assured the DMA will not use such a buffer and the buffer can be >> updated without any interference. >> >> Signed-off-by: Marek Vasut <[email protected]> >> Cc: Joe Hershberger <[email protected]> >> Cc: Patrice Chotard <[email protected]> >> Cc: Patrick Delaunay <[email protected]> >> Cc: Ramon Fried <[email protected]> >> Cc: Stephen Warren <[email protected]> >> --- >> drivers/net/dwc_eth_qos.c | 4 +++- >> 1 file changed, 3 insertions(+), 1 deletion(-) >> >> diff --git a/drivers/net/dwc_eth_qos.c b/drivers/net/dwc_eth_qos.c >> index 7dadb10fe7..c86b9d59a5 100644 >> --- a/drivers/net/dwc_eth_qos.c >> +++ b/drivers/net/dwc_eth_qos.c >> @@ -1431,8 +1431,10 @@ static int eqos_free_pkt(struct udevice *dev, uchar >> *packet, int length) >> >> rx_desc = &(eqos->rx_descs[eqos->rx_desc_idx]); >> >> + rx_desc->des0 = 0; >> + mb(); > Better use wmb() for better understanding your goal here ?
The driver uses mb() all over the place, so I'm just keeping it consistent here. But I wonder whether we even need all those barriers in this driver at all.

