diff options
author | Shannon Nelson <shannon.nelson@amd.com> | 2024-02-24 01:27:42 +0300 |
---|---|---|
committer | Paolo Abeni <pabeni@redhat.com> | 2024-02-27 15:03:32 +0300 |
commit | 155a1efc9b96a39857714aff49a11ebc93022c8c (patch) | |
tree | 84e4bca199066823374e49aad02943ab2672082d | |
parent | 7662fad348ac54120e9e6443cb0bbe4f3b582219 (diff) | |
download | linux-155a1efc9b96a39857714aff49a11ebc93022c8c.tar.xz |
ionic: restore netdev feature bits after reset
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>
-rw-r--r-- | drivers/net/ethernet/pensando/ionic/ionic_lif.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/net/ethernet/pensando/ionic/ionic_lif.c b/drivers/net/ethernet/pensando/ionic/ionic_lif.c index cf2d5ad7b68c..fcb44ceeb6aa 100644 --- a/drivers/net/ethernet/pensando/ionic/ionic_lif.c +++ b/drivers/net/ethernet/pensando/ionic/ionic_lif.c @@ -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; |