ionic: restore netdev feature bits after reset
authorShannon Nelson <shannon.nelson@amd.com>
Fri, 23 Feb 2024 22:27:42 +0000 (14:27 -0800)
committerPaolo Abeni <pabeni@redhat.com>
Tue, 27 Feb 2024 12:03:32 +0000 (13:03 +0100)
When rebuilding the lif after an FLR, be sure to restore the
current netdev features, not do the usual first time feature
init.  This prevents losing user changes to things like TSO
or vlan tagging states.

Fixes: 45b84188a0a4 ("ionic: keep filters across FLR")
Reviewed-by: Brett Creeley <brett.creeley@amd.com>
Signed-off-by: Shannon Nelson <shannon.nelson@amd.com>
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
drivers/net/ethernet/pensando/ionic/ionic_lif.c

index cf2d5ad7b68cc85195e516697d82238c6a7f5924..fcb44ceeb6aa51d944a12b411d904f2715a43be7 100644 (file)
@@ -3559,7 +3559,10 @@ int ionic_lif_init(struct ionic_lif *lif)
                        goto err_out_notifyq_deinit;
        }
 
-       err = ionic_init_nic_features(lif);
+       if (test_bit(IONIC_LIF_F_FW_RESET, lif->state))
+               err = ionic_set_nic_features(lif, lif->netdev->features);
+       else
+               err = ionic_init_nic_features(lif);
        if (err)
                goto err_out_notifyq_deinit;