In case of plugged out device, the fail-safe PMD uses failsafe_rx_burst function for packet receiving.
This function iterates over the present sub-devices until it receives a traffic from one of them or they are all cannot receive packets. The corrupted code didn't advance the sub-device pointer when the sub-device was not present and caused to infinite loop. Advance the sub-device pointer also in plugged-out sub-device case. Fixes: 8052bbd9d548 ("net/failsafe: improve Rx sub-devices iteration") Signed-off-by: Matan Azrad <ma...@mellanox.com> --- drivers/net/failsafe/failsafe_rxtx.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/net/failsafe/failsafe_rxtx.c b/drivers/net/failsafe/failsafe_rxtx.c index 1654494..aeee076 100644 --- a/drivers/net/failsafe/failsafe_rxtx.c +++ b/drivers/net/failsafe/failsafe_rxtx.c @@ -104,6 +104,7 @@ do { if (fs_rx_unsafe(sdev)) { nb_rx = 0; + sdev = sdev->next; continue; } sub_rxq = ETH(sdev)->data->rx_queues[rxq->qid]; -- 1.8.3.1