diff options
author | Ariel Elior <ariele@broadcom.com> | 2013-03-26 21:05:14 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2013-03-27 12:48:31 -0400 |
commit | 109386047a02e255e05a2ab1ed567e6fdf39c5dd (patch) | |
tree | c01594caf347932a080b450f9cc99970fed9b686 /drivers/net/ethernet/broadcom/bnx2x | |
parent | 60cde81f9dc9d70fa4462f4fefb72a1f27333af8 (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.c | 10 |
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 */ |