aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/ethernet/broadcom/bnx2x
diff options
context:
space:
mode:
authorAriel Elior <ariele@broadcom.com>2013-03-26 21:05:14 -0400
committerDavid S. Miller <davem@davemloft.net>2013-03-27 12:48:31 -0400
commit109386047a02e255e05a2ab1ed567e6fdf39c5dd (patch)
treec01594caf347932a080b450f9cc99970fed9b686 /drivers/net/ethernet/broadcom/bnx2x
parent60cde81f9dc9d70fa4462f4fefb72a1f27333af8 (diff)
bnx2x: missing ARI should not be lethal
If ARI forwarding flag is missing from the PCI bridge, remove SR-IOV support instead of failing the probe process. Signed-off-by: Ariel Elior <ariele@broadcom.com> Signed-off-by: Yuval Mintz <yuvalmin@broadcom.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/broadcom/bnx2x')
-rw-r--r--drivers/net/ethernet/broadcom/bnx2x/bnx2x_sriov.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_sriov.c b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_sriov.c
index faadd153f7ad..ad7ad1dae1e7 100644
--- a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_sriov.c
+++ b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_sriov.c
@@ -1932,20 +1932,22 @@ int bnx2x_iov_init_one(struct bnx2x *bp, int int_mode_param,
1932 1932
1933 /* SRIOV can be enabled only with MSIX */ 1933 /* SRIOV can be enabled only with MSIX */
1934 if (int_mode_param == BNX2X_INT_MODE_MSI || 1934 if (int_mode_param == BNX2X_INT_MODE_MSI ||
1935 int_mode_param == BNX2X_INT_MODE_INTX) 1935 int_mode_param == BNX2X_INT_MODE_INTX) {
1936 BNX2X_ERR("Forced MSI/INTx mode is incompatible with SRIOV\n"); 1936 BNX2X_ERR("Forced MSI/INTx mode is incompatible with SRIOV\n");
1937 return 0;
1938 }
1937 1939
1938 err = -EIO; 1940 err = -EIO;
1939 /* verify ari is enabled */ 1941 /* verify ari is enabled */
1940 if (!bnx2x_ari_enabled(bp->pdev)) { 1942 if (!bnx2x_ari_enabled(bp->pdev)) {
1941 BNX2X_ERR("ARI not supported, SRIOV can not be enabled\n"); 1943 BNX2X_ERR("ARI not supported (check pci bridge ARI forwarding), SRIOV can not be enabled\n");
1942 return err; 1944 return 0;
1943 } 1945 }
1944 1946
1945 /* verify igu is in normal mode */ 1947 /* verify igu is in normal mode */
1946 if (CHIP_INT_MODE_IS_BC(bp)) { 1948 if (CHIP_INT_MODE_IS_BC(bp)) {
1947 BNX2X_ERR("IGU not normal mode, SRIOV can not be enabled\n"); 1949 BNX2X_ERR("IGU not normal mode, SRIOV can not be enabled\n");
1948 return err; 1950 return 0;
1949 } 1951 }
1950 1952
1951 /* allocate the vfs database */ 1953 /* allocate the vfs database */