]> git.proxmox.com Git - mirror_ubuntu-kernels.git/commit
amd-xgbe: handle the corner-case during tx completion
authorRaju Rangoju <Raju.Rangoju@amd.com>
Tue, 21 Nov 2023 19:14:34 +0000 (00:44 +0530)
committerPaolo Abeni <pabeni@redhat.com>
Thu, 23 Nov 2023 12:47:23 +0000 (13:47 +0100)
commit7121205d5330c6a3cb3379348886d47c77b78d06
tree49f309b3c9c1c8d8e62a6d384a619971069f66ce
parent676ec53844cbdf2f47e68a076cdff7f0ec6cbe3f
amd-xgbe: handle the corner-case during tx completion

The existing implementation uses software logic to accumulate tx
completions until the specified time (1ms) is met and then poll them.
However, there exists a tiny gap which leads to a race between
resetting and checking the tx_activate flag. Due to this the tx
completions are not reported to upper layer and tx queue timeout
kicks-in restarting the device.

To address this, introduce a tx cleanup mechanism as part of the
periodic maintenance process.

Fixes: c5aa9e3b8156 ("amd-xgbe: Initial AMD 10GbE platform driver")
Acked-by: Shyam Sundar S K <Shyam-sundar.S-k@amd.com>
Signed-off-by: Raju Rangoju <Raju.Rangoju@amd.com>
Reviewed-by: Wojciech Drewek <wojciech.drewek@intel.com>
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
drivers/net/ethernet/amd/xgbe/xgbe-drv.c