eventdev/eth_rx: fix WRR buffer overrun
authorNaga Harish K S V <s.v.naga.harish.k@intel.com>
Mon, 18 Oct 2021 08:25:41 +0000 (03:25 -0500)
committerJerin Jacob <jerinj@marvell.com>
Thu, 21 Oct 2021 08:16:00 +0000 (10:16 +0200)
commit81da8a5ff440eda60635c849c9e9b3d253838da9
tree518c01aa55bfa8a990d5514ae441d92299ba8f0e
parent20841a25511d0d79aabd251b60db604a4c1cc5c2
eventdev/eth_rx: fix WRR buffer overrun

When a poll queue is removed from a rx_adapter instance, the WRR poll
array is recomputed. The wrr array length is reduced in this case. The
next wrr position to poll is stored in wrr_pos variable of rx_adapter
instance. This wrr_pos can become invalid in some cases after wrr is
recomputed. Using this variable to get the next queue and device pair
may leed to wrr buffer overruns.

Resetting the wrr_pos to zero after recomputation of wrr array fixes
the buffer overrun issue.

Fixes: 9c38b704d280 ("eventdev: add eth Rx adapter implementation")
Cc: stable@dpdk.org
Signed-off-by: Naga Harish K S V <s.v.naga.harish.k@intel.com>
Acked-by: Jay Jayatheerthan <jay.jayatheerthan@intel.com>
lib/eventdev/rte_event_eth_rx_adapter.c