net: ll_temac: Add memory-barriers for TX BD access
authorEsben Haabendal <esben@geanix.com>
Fri, 18 Jun 2021 10:52:28 +0000 (12:52 +0200)
committerDavid S. Miller <davem@davemloft.net>
Fri, 18 Jun 2021 19:11:51 +0000 (12:11 -0700)
commit28d9fab458b16bcd83f9dd07ede3d585c3e1a69e
treed6fd491dbf94b179dc2d4cd04d88e87f07b3267a
parent6aa32217a9a446275440ee8724b1ecaf1838df47
net: ll_temac: Add memory-barriers for TX BD access

Add a couple of memory-barriers to ensure correct ordering of read/write
access to TX BDs.

In xmit_done, we should ensure that reading the additional BD fields are
only done after STS_CTRL_APP0_CMPLT bit is set.

When xmit_done marks the BD as free by setting APP0=0, we need to ensure
that the other BD fields are reset first, so we avoid racing with the xmit
path, which writes to the same fields.

Finally, making sure to read APP0 of next BD after the current BD, ensures
that we see all available buffers.

Signed-off-by: Esben Haabendal <esben@geanix.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/xilinx/ll_temac_main.c