mirror of
https://github.com/torvalds/linux
synced 2024-11-05 18:23:50 +00:00
i40e: do a proper reset when disabling a VF
The VF disable code was just whanging on the reset bit without properly cleaning up the VF, which would leave the VF in an indeterminate state from which it could not recover. Fix this by notifying the VF and then by calling the normal VF reset routine. Change-ID: I862b9dfa919368773cbdc212b805b520db2f7430 Signed-off-by: Mitch Williams <mitch.a.williams@intel.com> Tested-by: Jim Young <james.m.young@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
This commit is contained in:
parent
e995163cdc
commit
54f455eeb5
1 changed files with 2 additions and 7 deletions
|
@ -160,13 +160,8 @@ void i40e_vc_notify_vf_reset(struct i40e_vf *vf)
|
|||
**/
|
||||
static inline void i40e_vc_disable_vf(struct i40e_pf *pf, struct i40e_vf *vf)
|
||||
{
|
||||
struct i40e_hw *hw = &pf->hw;
|
||||
u32 reg;
|
||||
|
||||
reg = rd32(hw, I40E_VPGEN_VFRTRIG(vf->vf_id));
|
||||
reg |= I40E_VPGEN_VFRTRIG_VFSWR_MASK;
|
||||
wr32(hw, I40E_VPGEN_VFRTRIG(vf->vf_id), reg);
|
||||
i40e_flush(hw);
|
||||
i40e_vc_notify_vf_reset(vf);
|
||||
i40e_reset_vf(vf, false);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
Loading…
Reference in a new issue