mirror of
https://github.com/edk2-porting/linux-next.git
synced 2024-12-28 07:04:00 +08:00
bnx2x: improve VF timings
Wait 100ms for FLR to complete in parallel over all VFs instead of serializing the waits (which can amount to several seconds with 64 VFs). Signed-off-by: Ariel Elior <ariele@broadcom.com> Signed-off-by: Yuval Mintz <yuvalmin@broadcom.com> Signed-off-by: Eilon Greenstein <eilong@broadcom.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
af902ae443
commit
03c22ea3f0
@ -1469,9 +1469,6 @@ static u8 bnx2x_vf_is_pcie_pending(struct bnx2x *bp, u8 abs_vfid)
|
||||
|
||||
int bnx2x_vf_flr_clnup_epilog(struct bnx2x *bp, u8 abs_vfid)
|
||||
{
|
||||
/* Wait 100ms */
|
||||
msleep(100);
|
||||
|
||||
/* Verify no pending pci transactions */
|
||||
if (bnx2x_vf_is_pcie_pending(bp, abs_vfid))
|
||||
BNX2X_ERR("PCIE Transactions still pending\n");
|
||||
@ -2174,6 +2171,9 @@ int bnx2x_iov_nic_init(struct bnx2x *bp)
|
||||
|
||||
DP(BNX2X_MSG_IOV, "num of vfs: %d\n", (bp)->vfdb->sriov.nr_virtfn);
|
||||
|
||||
/* let FLR complete ... */
|
||||
msleep(100);
|
||||
|
||||
/* initialize vf database */
|
||||
for_each_vf(bp, vfid) {
|
||||
struct bnx2x_virtf *vf = BP_VF(bp, vfid);
|
||||
@ -2775,6 +2775,10 @@ int bnx2x_vf_init(struct bnx2x *bp, struct bnx2x_virtf *vf, dma_addr_t *sb_map)
|
||||
vf->abs_vfid, vf->state);
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
/* let FLR complete ... */
|
||||
msleep(100);
|
||||
|
||||
/* FLR cleanup epilogue */
|
||||
if (bnx2x_vf_flr_clnup_epilog(bp, vf->abs_vfid))
|
||||
return -EBUSY;
|
||||
|
Loading…
Reference in New Issue
Block a user