Skip to content

Commit 9cb9dad

Browse files
emuslnkuba-moo
authored andcommitted
ionic: clear broken state on generation change
There is a case found in heavy testing where a link flap happens just before a firmware Recovery event and the driver gets stuck in the BROKEN state. This comes from the driver getting interrupted by a FW generation change when coming back up from the link flap, and the call to ionic_start_queues() in ionic_link_status_check() fails. This can be addressed by having the fw_up code clear the BROKEN bit if seen, rather than waiting for a user to manually force the interface down and then back up. Fixes: 9e8eaf8 ("ionic: stop watchdog when in broken state") Signed-off-by: Shannon Nelson <[email protected]> Signed-off-by: Jakub Kicinski <[email protected]>
1 parent b0f571e commit 9cb9dad

File tree

1 file changed

+3
-0
lines changed

1 file changed

+3
-0
lines changed

drivers/net/ethernet/pensando/ionic/ionic_lif.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2963,6 +2963,9 @@ static void ionic_lif_handle_fw_up(struct ionic_lif *lif)
29632963

29642964
mutex_lock(&lif->queue_lock);
29652965

2966+
if (test_and_clear_bit(IONIC_LIF_F_BROKEN, lif->state))
2967+
dev_info(ionic->dev, "FW Up: clearing broken state\n");
2968+
29662969
err = ionic_qcqs_alloc(lif);
29672970
if (err)
29682971
goto err_unlock;

0 commit comments

Comments
 (0)