Commit 49baea88 authored by Ariel Elior's avatar Ariel Elior Committed by David S. Miller

bnx2x: set VF DMAE when first function has 0 supported VFs

There are possible HW configurations in which PFs will have SR-IOV capability
but will have Max VFs set to 0 - this happens when there are Multi-Function
devices where the VFs are allocated to only some of the PFs.

DMAE is configured to support VFs only if the configuring PF has supported VFs.
In case the first PF to be loaded will be one without supported VFs, it will
not configure DMAE to the VF-supporting mode. When VFs of other PFs will be
loaded later on, they will not be able to communicate with their PF.

This changes the requirement for configuring DMAE for VF-supporting mode;
If the device has SR-IOV capabilities there must be some PF that has
max supported VFs > 0, thus it will configure the DMAE for supporting VFs.
Signed-off-by: default avatarAriel Elior <ariele@broadcom.com>
Signed-off-by: default avatarYuval Mintz <yuvalmin@broadcom.com>
Signed-off-by: default avatarEilon Greenstein <eilong@broadcom.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 5ae30d78
...@@ -1747,11 +1747,8 @@ void bnx2x_iov_init_dq(struct bnx2x *bp) ...@@ -1747,11 +1747,8 @@ void bnx2x_iov_init_dq(struct bnx2x *bp)
void bnx2x_iov_init_dmae(struct bnx2x *bp) void bnx2x_iov_init_dmae(struct bnx2x *bp)
{ {
DP(BNX2X_MSG_IOV, "SRIOV is %s\n", IS_SRIOV(bp) ? "ON" : "OFF"); if (pci_find_ext_capability(bp->pdev, PCI_EXT_CAP_ID_SRIOV))
if (!IS_SRIOV(bp)) REG_WR(bp, DMAE_REG_BACKWARD_COMP_EN, 0);
return;
REG_WR(bp, DMAE_REG_BACKWARD_COMP_EN, 0);
} }
static int bnx2x_vf_bus(struct bnx2x *bp, int vfid) static int bnx2x_vf_bus(struct bnx2x *bp, int vfid)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment