]> git.baikalelectronics.ru Git - kernel.git/commit
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)
commit8d0bee375b8952c6b915ca2863215fa6dbb32b59
treed6fd491dbf94b179dc2d4cd04d88e87f07b3267a
parent049cefc18cbf19df02ea312db964dbe71d6dfe28
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