mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-12-28 13:34:38 +08:00
i40e: lie to the VF
If an untrusted VF attempts to configure promiscuous mode, log a message pointing out its naughty behavior. But then, instead of returning an error to the offender, just lie to it and say everything's OK. It will continue on its way, thinking it's in promiscuous mode, but receiving no packets except its own. Change-ID: I63369215b1720f3c531eedfc06af86ff8c0e3dc8 Signed-off-by: Mitch Williams <mitch.a.williams@intel.com> Tested-by: Andrew Bowers <andrewx.bowers@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
This commit is contained in:
parent
b556989230
commit
eee4172abc
@ -1474,14 +1474,18 @@ static int i40e_vc_config_promiscuous_mode_msg(struct i40e_vf *vf,
|
||||
|
||||
vsi = i40e_find_vsi_from_id(pf, info->vsi_id);
|
||||
if (!test_bit(I40E_VF_STAT_ACTIVE, &vf->vf_states) ||
|
||||
!test_bit(I40E_VIRTCHNL_VF_CAP_PRIVILEGE, &vf->vf_caps) ||
|
||||
!i40e_vc_isvalid_vsi_id(vf, info->vsi_id)) {
|
||||
dev_err(&pf->pdev->dev,
|
||||
"VF %d doesn't meet requirements to enter promiscuous mode\n",
|
||||
vf->vf_id);
|
||||
aq_ret = I40E_ERR_PARAM;
|
||||
goto error_param;
|
||||
}
|
||||
if (!test_bit(I40E_VIRTCHNL_VF_CAP_PRIVILEGE, &vf->vf_caps)) {
|
||||
dev_err(&pf->pdev->dev,
|
||||
"Unprivileged VF %d is attempting to configure promiscuous mode\n",
|
||||
vf->vf_id);
|
||||
/* Lie to the VF on purpose. */
|
||||
aq_ret = 0;
|
||||
goto error_param;
|
||||
}
|
||||
/* Multicast promiscuous handling*/
|
||||
if (info->flags & I40E_FLAG_VF_MULTICAST_PROMISC)
|
||||
allmulti = true;
|
||||
|
Loading…
Reference in New Issue
Block a user