The TX DMA channel data is accessed by the xrx200_start_xmit() and the
xrx200_tx_housekeeping() function from different threads. Make sure the
accesses are synchronized by acquiring the netif_tx_lock() in the
xrx200_tx_housekeeping() function too. This lock is acquired by the
kernel before calling xrx200_start_xmit().
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
---
drivers/net/ethernet/lantiq_xrx200.c | 2 ++
1 file changed, 2 insertions(+)
The TX DMA channel data is accessed by the xrx200_start_xmit() and the
xrx200_tx_housekeeping() function from different threads. Make sure the
accesses are synchronized by acquiring the netif_tx_lock() in the
xrx200_tx_housekeeping() function too. This lock is acquired by the
kernel before calling xrx200_start_xmit().
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Applied, but...
You posted this really fast after my feedback, so I have to ask if you
actually functionally tested this patch?
The TX DMA channel data is accessed by the xrx200_start_xmit() and the
xrx200_tx_housekeeping() function from different threads. Make sure the
accesses are synchronized by acquiring the netif_tx_lock() in the
xrx200_tx_housekeeping() function too. This lock is acquired by the
kernel before calling xrx200_start_xmit().
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Tested-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
Applied, but...
You posted this really fast after my feedback, so I have to ask if you
actually functionally tested this patch?
The TX DMA channel data is accessed by the xrx200_start_xmit() and the
xrx200_tx_housekeeping() function from different threads. Make sure the
accesses are synchronized by acquiring the netif_tx_lock() in the
xrx200_tx_housekeeping() function too. This lock is acquired by the
kernel before calling xrx200_start_xmit().
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Applied, but...
You posted this really fast after my feedback, so I have to ask if you
actually functionally tested this patch?
Hi David,
I created the patch first, then tested it with ipef3 (iperf3 -c
192.168.1.70 -P 10 -t 30 and reverse) multiple times and send both mails.
I did not see any problems, but it could still be that I miss more problems.
Hauke
The TX DMA channel data is accessed by the xrx200_start_xmit() and the
xrx200_tx_housekeeping() function from different threads. Make sure the
accesses are synchronized by acquiring the netif_tx_lock() in the
xrx200_tx_housekeeping() function too. This lock is acquired by the
kernel before calling xrx200_start_xmit().
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Applied [...]
what is the procedure to have this patch included in the 5.4 and 5.9
-stable trees as well?
this commit is already in mainline as f9317ae5523f99999fb54c513ebabbb2bc887ddf
After more testing other users have confirmed that this patch works
In hindsight it should have carried Fixes: fe1a56420cf2ec ("net:
lantiq: Add Lantiq / Intel VRX200 Ethernet driver")
Thank you!
Martin