qed: FLR of active VFs might lead to FW assert
Driver never bothered marking the VF's vport with the VF's sw_fid.
As a result, FLR flows are not going to clean those vports.
If the vport was active when FLRed, re-activating it would lead
to a FW assertion.
Fixes: dacd88d6f6
("qed: IOV l2 functionality")
Signed-off-by: Yuval Mintz <Yuval.Mintz@qlogic.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
c0451fe1f2
commit
4870e704d9
|
@ -561,9 +561,18 @@ struct qed_dev {
|
|||
static inline u8 qed_concrete_to_sw_fid(struct qed_dev *cdev,
|
||||
u32 concrete_fid)
|
||||
{
|
||||
u8 vfid = GET_FIELD(concrete_fid, PXP_CONCRETE_FID_VFID);
|
||||
u8 pfid = GET_FIELD(concrete_fid, PXP_CONCRETE_FID_PFID);
|
||||
u8 vf_valid = GET_FIELD(concrete_fid,
|
||||
PXP_CONCRETE_FID_VFVALID);
|
||||
u8 sw_fid;
|
||||
|
||||
return pfid;
|
||||
if (vf_valid)
|
||||
sw_fid = vfid + MAX_NUM_PFS;
|
||||
else
|
||||
sw_fid = pfid;
|
||||
|
||||
return sw_fid;
|
||||
}
|
||||
|
||||
#define PURE_LB_TC 8
|
||||
|
|
Loading…
Reference in New Issue