diff options
| author | Koichiro Den <den@valinux.co.jp> | 2026-08-17 14:35:17 +0900 |
|---|---|---|
| committer | Jakub Kicinski <kuba@kernel.org> | 2026-08-20 13:43:24 -0700 |
| commit | 8aaa47351db0f93a5c5297fbafdfa8bc75e8ae49 (patch) | |
| tree | e4bcfcf764acc3237b119d9412850bd0270b7370 /tools/perf/scripts | |
| parent | 256496397287334a19ed80ec7be92bffcae76b9d (diff) | |
| download | linux-8aaa47351db0f93a5c5297fbafdfa8bc75e8ae49.tar.gz linux-8aaa47351db0f93a5c5297fbafdfa8bc75e8ae49.zip | |
net: ntb_netdev: Fix TX busy and drop handling
Currently, ntb_netdev returns NETDEV_TX_BUSY for every enqueue error. It
also increments the drop and error counters while leaving the skb owned
by the qdisc, and may return BUSY with the subqueue still awake.
Retrying a permanent error cannot succeed either.
The unconditional BUSY return and premature accounting date back to the
initial driver. The error-path queue stop was later removed without
changing that return value. The current flow-control code includes a
resource check, but ntb_netdev does not honor its result before enqueue.
Honor the resource check before enqueue. For -EAGAIN and -EBUSY, stop
the subqueue, arm the existing reaper timer, and return BUSY without
touching the skb. For other errors, free the skb, increment tx_dropped,
and return NETDEV_TX_OK.
Fixes: 548c237c0a99 ("net: Add support for NTB virtual ethernet device")
Fixes: d723485cb4ca ("ntb_netdev: remove tx timeout")
Fixes: e74bfeedad08 ("NTB: Add flow control to the ntb_netdev")
Cc: stable@vger.kernel.org
Signed-off-by: Koichiro Den <den@valinux.co.jp>
Reviewed-by: Dave Jiang <dave.jiang@intel.com>
Link: https://patch.msgid.link/20260817053519.4135287-3-den@valinux.co.jp
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Diffstat (limited to 'tools/perf/scripts')
0 files changed, 0 insertions, 0 deletions
