summaryrefslogtreecommitdiff
path: root/drivers/net/mlx4/main.c
diff options
context:
space:
mode:
authorYevgeny Petrilin <yevgenyp@mellanox.co.il>2009-07-06 16:10:03 -0700
committerRoland Dreier <rolandd@cisco.com>2009-07-06 16:10:03 -0700
commitcc4ac2e7fb90dfbbbd5a42df0879733f787e4690 (patch)
tree2d349bbda2642b8b2c5156fedf0c13cbbb7cfc28 /drivers/net/mlx4/main.c
parent626f380d0b264a1e40237f5a2a3dffc5d14f256e (diff)
mlx4_core: Handle multi-physical function devices
MT26468 (PCI ID 0x6764) devices can expose multiple physical functions. The current driver only handles the primary physical function. For other functions, the QUERY_FW firmware command will fail with the CMD_STAT_MULTI_FUNC_REQ error code. Don't try to drive such devices, but print a message saying the driver is skipping those devices rather than just "QUERY_FW command failed." Signed-off-by: Yevgeny Petrilin <yevgenyp@mellanox.co.il> [ Rather than keeping unsupported devices bound to the driver, simply print a more informative error message and exit - Roland ] Signed-off-by: Roland Dreier <rolandd@cisco.com>
Diffstat (limited to 'drivers/net/mlx4/main.c')
-rw-r--r--drivers/net/mlx4/main.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/net/mlx4/main.c b/drivers/net/mlx4/main.c
index 018348c01193..b820658fa076 100644
--- a/drivers/net/mlx4/main.c
+++ b/drivers/net/mlx4/main.c
@@ -729,7 +729,10 @@ static int mlx4_init_hca(struct mlx4_dev *dev)
err = mlx4_QUERY_FW(dev);
if (err) {
- mlx4_err(dev, "QUERY_FW command failed, aborting.\n");
+ if (err == -EACCES)
+ mlx4_info(dev, "non-primary physical function, skipping.\n");
+ else
+ mlx4_err(dev, "QUERY_FW command failed, aborting.\n");
return err;
}