diff options
| author | Michal Swiatkowski <[email protected]> | 2023-10-24 11:09:28 +0000 |
|---|---|---|
| committer | Tony Nguyen <[email protected]> | 2023-11-13 19:42:15 +0000 |
| commit | c9663f79cd82e64d5bcce3b3aafbcae15494a592 (patch) | |
| tree | 82e3925103f244fb85541553bd3140f862a16f57 /drivers/net/ethernet/intel/ice/ice_vf_lib.c | |
| parent | ice: add VF representors one by one (diff) | |
| download | kernel-c9663f79cd82e64d5bcce3b3aafbcae15494a592.tar.gz kernel-c9663f79cd82e64d5bcce3b3aafbcae15494a592.zip | |
ice: adjust switchdev rebuild path
There is no need to use specific functions for rebuilding path. Let's
use current implementation by removing all representors and as the
result remove switchdev environment.
It will be added in devices rebuild path. For example during adding VFs,
port representors for them also will be created.
Rebuild control plane VSI before removing representors with INIT_VSI
flag set to reinit VSI in hardware after reset.
Reviewed-by: Wojciech Drewek <[email protected]>
Signed-off-by: Michal Swiatkowski <[email protected]>
Tested-by: Sujai Buvaneswaran <[email protected]>
Signed-off-by: Tony Nguyen <[email protected]>
Diffstat (limited to 'drivers/net/ethernet/intel/ice/ice_vf_lib.c')
| -rw-r--r-- | drivers/net/ethernet/intel/ice/ice_vf_lib.c | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/drivers/net/ethernet/intel/ice/ice_vf_lib.c b/drivers/net/ethernet/intel/ice/ice_vf_lib.c index 68f9de0a7a8f..d2a99a20c4ad 100644 --- a/drivers/net/ethernet/intel/ice/ice_vf_lib.c +++ b/drivers/net/ethernet/intel/ice/ice_vf_lib.c @@ -760,6 +760,7 @@ void ice_reset_all_vfs(struct ice_pf *pf) ice_for_each_vf(pf, bkt, vf) { mutex_lock(&vf->cfg_lock); + ice_eswitch_detach(pf, vf); vf->driver_caps = 0; ice_vc_set_default_allowlist(vf); @@ -775,13 +776,11 @@ void ice_reset_all_vfs(struct ice_pf *pf) ice_vf_rebuild_vsi(vf); ice_vf_post_vsi_rebuild(vf); + ice_eswitch_attach(pf, vf); + mutex_unlock(&vf->cfg_lock); } - if (ice_is_eswitch_mode_switchdev(pf)) - if (ice_eswitch_rebuild(pf)) - dev_warn(dev, "eswitch rebuild failed\n"); - ice_flush(hw); clear_bit(ICE_VF_DIS, pf->state); |
