]> 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)
commit862b494323e12b2cb307fc4a44ca4b66728c03c8
treed6fd491dbf94b179dc2d4cd04d88e87f07b3267a
parent5bd78bc331be6bc78b82925cacff07c04fed2cb9
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