mirror of
https://github.com/torvalds/linux.git
synced 2026-07-27 09:36:22 +02:00
ice: allow creating VFs when !CONFIG_ICE_SWITCHDEV
Currently ice_eswitch_attach_vf() is called unconditionally in ice_start_vfs(), which causes VF creation to fail when CONFIG_ICE_SWITCHDEV is not defined. Fix this by adding switchdev mode checks at the call sites before calling ice_eswitch_attach_vf(), consistent with how ice_eswitch_attach_sf() is already handled in ice_devlink_port_new(). This is similar to commitaacca7a83b("ice: allow creating VFs for !CONFIG_NET_SWITCHDEV") which fixed the same issue for the previous ice_eswitch_configure() API. Fixes:415db8399d("ice: make representor code generic") Signed-off-by: Vincent Chen <vincent.chen@sifive.com> Reviewed-by: Aleksandr Loktionov <aleksandr.loktionov@intel.com> Tested-by: Rafal Romanowski <rafal.romanowski@intel.com> Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com> Link: https://patch.msgid.link/20260717185340.3595286-2-anthony.l.nguyen@intel.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
parent
440e274da4
commit
99d0f42b0e
|
|
@ -512,9 +512,6 @@ int ice_eswitch_attach_vf(struct ice_pf *pf, struct ice_vf *vf)
|
|||
struct ice_repr *repr;
|
||||
int err;
|
||||
|
||||
if (!ice_is_eswitch_mode_switchdev(pf))
|
||||
return 0;
|
||||
|
||||
repr = ice_repr_create_vf(vf);
|
||||
if (IS_ERR(repr))
|
||||
return PTR_ERR(repr);
|
||||
|
|
|
|||
|
|
@ -484,12 +484,14 @@ static int ice_start_vfs(struct ice_pf *pf)
|
|||
goto teardown;
|
||||
}
|
||||
|
||||
retval = ice_eswitch_attach_vf(pf, vf);
|
||||
if (retval) {
|
||||
dev_err(ice_pf_to_dev(pf), "Failed to attach VF %d to eswitch, error %d",
|
||||
vf->vf_id, retval);
|
||||
ice_vf_vsi_release(vf);
|
||||
goto teardown;
|
||||
if (ice_is_eswitch_mode_switchdev(pf)) {
|
||||
retval = ice_eswitch_attach_vf(pf, vf);
|
||||
if (retval) {
|
||||
dev_err(ice_pf_to_dev(pf), "Failed to attach VF %d to eswitch, error %d",
|
||||
vf->vf_id, retval);
|
||||
ice_vf_vsi_release(vf);
|
||||
goto teardown;
|
||||
}
|
||||
}
|
||||
|
||||
set_bit(ICE_VF_STATE_INIT, vf->vf_states);
|
||||
|
|
|
|||
|
|
@ -812,7 +812,8 @@ void ice_reset_all_vfs(struct ice_pf *pf)
|
|||
}
|
||||
ice_vf_post_vsi_rebuild(vf);
|
||||
|
||||
ice_eswitch_attach_vf(pf, vf);
|
||||
if (ice_is_eswitch_mode_switchdev(pf))
|
||||
ice_eswitch_attach_vf(pf, vf);
|
||||
|
||||
mutex_unlock(&vf->cfg_lock);
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user