diff options
author | Roger Quadros <rogerq@kernel.org> | 2024-11-01 12:18:50 +0200 |
---|---|---|
committer | Paolo Abeni <pabeni@redhat.com> | 2024-11-05 15:56:48 +0100 |
commit | de794169cf1711a98e1e4856c76388e6dadd73a1 (patch) | |
tree | 13f5d04dbaea89585bc98034f51f0eb3a12d6e0e /certs | |
parent | df3dff8ab6d79edc942464999d06fbaedf8cdd18 (diff) |
net: ethernet: ti: am65-cpsw: Fix multi queue Rx on J7
On J7 platforms, setting up multiple RX flows was failing
as the RX free descriptor ring 0 is shared among all flows
and we did not allocate enough elements in the RX free descriptor
ring 0 to accommodate for all RX flows.
This issue is not present on AM62 as separate pair of
rings are used for free and completion rings for each flow.
Fix this by allocating enough elements for RX free descriptor
ring 0.
However, we can no longer rely on desc_idx (descriptor based
offsets) to identify the pages in the respective flows as
free descriptor ring includes elements for all flows.
To solve this, introduce a new swdata data structure to store
flow_id and page. This can be used to identify which flow (page_pool)
and page the descriptor belonged to when popped out of the
RX rings.
Fixes: da70d184a8c3 ("net: ethernet: ti: am65-cpsw: Introduce multi queue Rx")
Signed-off-by: Roger Quadros <rogerq@kernel.org>
Reviewed-by: Simon Horman <horms@kernel.org>
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
Diffstat (limited to 'certs')
0 files changed, 0 insertions, 0 deletions