ionic: Reset LIF device while restarting LIF
authorShannon Nelson <shannon.nelson@amd.com>
Wed, 29 May 2024 00:02:54 +0000 (17:02 -0700)
committerJakub Kicinski <kuba@kernel.org>
Fri, 31 May 2024 01:10:34 +0000 (18:10 -0700)
Recovery from broken states can be hard.  If the LIF reset in
the fw_down path didn't work because the PCI link was broken,
the FW won't be in the right state for proper restart.  We can
fire another LIF reset in the fw_up path to be sure things
are clean on restart.

Signed-off-by: Shannon Nelson <shannon.nelson@amd.com>
Link: https://lore.kernel.org/r/20240529000259.25775-3-shannon.nelson@amd.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/ethernet/pensando/ionic/ionic_lif.c

index 12fda3b..101cbc0 100644 (file)
@@ -3388,6 +3388,7 @@ static void ionic_lif_handle_fw_up(struct ionic_lif *lif)
         * just need to reanimate it.
         */
        ionic_init_devinfo(ionic);
+       ionic_reset(ionic);
        err = ionic_identify(ionic);
        if (err)
                goto err_out;