diff options
Diffstat (limited to 'drivers/net/ethernet/intel/ice/ice_virtchnl_pf.c')
| -rw-r--r-- | drivers/net/ethernet/intel/ice/ice_virtchnl_pf.c | 63 | 
1 files changed, 49 insertions, 14 deletions
diff --git a/drivers/net/ethernet/intel/ice/ice_virtchnl_pf.c b/drivers/net/ethernet/intel/ice/ice_virtchnl_pf.c index a42eaf6f942e..6a74344a3c21 100644 --- a/drivers/net/ethernet/intel/ice/ice_virtchnl_pf.c +++ b/drivers/net/ethernet/intel/ice/ice_virtchnl_pf.c @@ -4499,13 +4499,6 @@ void ice_vc_set_dflt_vf_ops(struct ice_vc_vf_ops *ops)  	*ops = ice_vc_vf_dflt_ops;  } -static int -ice_vc_repr_no_action_msg(struct ice_vf __always_unused *vf, -			  u8 __always_unused *msg) -{ -	return 0; -} -  /**   * ice_vc_repr_add_mac   * @vf: pointer to VF @@ -4581,20 +4574,62 @@ ice_vc_repr_del_mac(struct ice_vf __always_unused *vf, u8 __always_unused *msg)  				     VIRTCHNL_STATUS_SUCCESS, NULL, 0);  } -static int ice_vc_repr_no_action(struct ice_vf __always_unused *vf) +static int ice_vc_repr_add_vlan(struct ice_vf *vf, u8 __always_unused *msg)  { -	return 0; +	dev_dbg(ice_pf_to_dev(vf->pf), +		"Can't add VLAN in switchdev mode for VF %d\n", vf->vf_id); +	return ice_vc_send_msg_to_vf(vf, VIRTCHNL_OP_ADD_VLAN, +				     VIRTCHNL_STATUS_SUCCESS, NULL, 0); +} + +static int ice_vc_repr_del_vlan(struct ice_vf *vf, u8 __always_unused *msg) +{ +	dev_dbg(ice_pf_to_dev(vf->pf), +		"Can't delete VLAN in switchdev mode for VF %d\n", vf->vf_id); +	return ice_vc_send_msg_to_vf(vf, VIRTCHNL_OP_DEL_VLAN, +				     VIRTCHNL_STATUS_SUCCESS, NULL, 0); +} + +static int ice_vc_repr_ena_vlan_stripping(struct ice_vf *vf) +{ +	dev_dbg(ice_pf_to_dev(vf->pf), +		"Can't enable VLAN stripping in switchdev mode for VF %d\n", +		vf->vf_id); +	return ice_vc_send_msg_to_vf(vf, VIRTCHNL_OP_ENABLE_VLAN_STRIPPING, +				     VIRTCHNL_STATUS_ERR_NOT_SUPPORTED, +				     NULL, 0); +} + +static int ice_vc_repr_dis_vlan_stripping(struct ice_vf *vf) +{ +	dev_dbg(ice_pf_to_dev(vf->pf), +		"Can't disable VLAN stripping in switchdev mode for VF %d\n", +		vf->vf_id); +	return ice_vc_send_msg_to_vf(vf, VIRTCHNL_OP_DISABLE_VLAN_STRIPPING, +				     VIRTCHNL_STATUS_ERR_NOT_SUPPORTED, +				     NULL, 0); +} + +static int +ice_vc_repr_cfg_promiscuous_mode(struct ice_vf *vf, u8 __always_unused *msg) +{ +	dev_dbg(ice_pf_to_dev(vf->pf), +		"Can't config promiscuous mode in switchdev mode for VF %d\n", +		vf->vf_id); +	return ice_vc_send_msg_to_vf(vf, VIRTCHNL_OP_CONFIG_PROMISCUOUS_MODE, +				     VIRTCHNL_STATUS_ERR_NOT_SUPPORTED, +				     NULL, 0);  }  void ice_vc_change_ops_to_repr(struct ice_vc_vf_ops *ops)  {  	ops->add_mac_addr_msg = ice_vc_repr_add_mac;  	ops->del_mac_addr_msg = ice_vc_repr_del_mac; -	ops->add_vlan_msg = ice_vc_repr_no_action_msg; -	ops->remove_vlan_msg = ice_vc_repr_no_action_msg; -	ops->ena_vlan_stripping = ice_vc_repr_no_action; -	ops->dis_vlan_stripping = ice_vc_repr_no_action; -	ops->cfg_promiscuous_mode_msg = ice_vc_repr_no_action_msg; +	ops->add_vlan_msg = ice_vc_repr_add_vlan; +	ops->remove_vlan_msg = ice_vc_repr_del_vlan; +	ops->ena_vlan_stripping = ice_vc_repr_ena_vlan_stripping; +	ops->dis_vlan_stripping = ice_vc_repr_dis_vlan_stripping; +	ops->cfg_promiscuous_mode_msg = ice_vc_repr_cfg_promiscuous_mode;  }  /**  | 
