diff options
| -rw-r--r-- | drivers/net/ethernet/mellanox/mlx4/fw.c | 10 | ||||
| -rw-r--r-- | include/linux/mlx4/device.h | 2 |
2 files changed, 9 insertions, 3 deletions
diff --git a/drivers/net/ethernet/mellanox/mlx4/fw.c b/drivers/net/ethernet/mellanox/mlx4/fw.c index 9c83bb8151ea..4281ce09add8 100644 --- a/drivers/net/ethernet/mellanox/mlx4/fw.c +++ b/drivers/net/ethernet/mellanox/mlx4/fw.c | |||
| @@ -881,11 +881,12 @@ int mlx4_QUERY_FW(struct mlx4_dev *dev) | |||
| 881 | ((fw_ver & 0xffff0000ull) >> 16) | | 881 | ((fw_ver & 0xffff0000ull) >> 16) | |
| 882 | ((fw_ver & 0x0000ffffull) << 16); | 882 | ((fw_ver & 0x0000ffffull) << 16); |
| 883 | 883 | ||
| 884 | MLX4_GET(lg, outbox, QUERY_FW_PPF_ID); | ||
| 885 | dev->caps.function = lg; | ||
| 886 | |||
| 884 | if (mlx4_is_slave(dev)) | 887 | if (mlx4_is_slave(dev)) |
| 885 | goto out; | 888 | goto out; |
| 886 | 889 | ||
| 887 | MLX4_GET(lg, outbox, QUERY_FW_PPF_ID); | ||
| 888 | dev->caps.function = lg; | ||
| 889 | 890 | ||
| 890 | MLX4_GET(cmd_if_rev, outbox, QUERY_FW_CMD_IF_REV_OFFSET); | 891 | MLX4_GET(cmd_if_rev, outbox, QUERY_FW_CMD_IF_REV_OFFSET); |
| 891 | if (cmd_if_rev < MLX4_COMMAND_INTERFACE_MIN_REV || | 892 | if (cmd_if_rev < MLX4_COMMAND_INTERFACE_MIN_REV || |
| @@ -966,9 +967,12 @@ int mlx4_QUERY_FW_wrapper(struct mlx4_dev *dev, int slave, | |||
| 966 | if (err) | 967 | if (err) |
| 967 | return err; | 968 | return err; |
| 968 | 969 | ||
| 969 | /* for slaves, zero out everything except FW version */ | 970 | /* for slaves, set pci PPF ID to invalid and zero out everything |
| 971 | * else except FW version */ | ||
| 970 | outbuf[0] = outbuf[1] = 0; | 972 | outbuf[0] = outbuf[1] = 0; |
| 971 | memset(&outbuf[8], 0, QUERY_FW_OUT_SIZE - 8); | 973 | memset(&outbuf[8], 0, QUERY_FW_OUT_SIZE - 8); |
| 974 | outbuf[QUERY_FW_PPF_ID] = MLX4_INVALID_SLAVE_ID; | ||
| 975 | |||
| 972 | return 0; | 976 | return 0; |
| 973 | } | 977 | } |
| 974 | 978 | ||
diff --git a/include/linux/mlx4/device.h b/include/linux/mlx4/device.h index 6a8f002b8ed3..8eadf0f14cc5 100644 --- a/include/linux/mlx4/device.h +++ b/include/linux/mlx4/device.h | |||
| @@ -534,6 +534,8 @@ struct mlx4_init_port_param { | |||
| 534 | if (((dev)->caps.port_mask[port] == MLX4_PORT_TYPE_IB) || \ | 534 | if (((dev)->caps.port_mask[port] == MLX4_PORT_TYPE_IB) || \ |
| 535 | ((dev)->caps.flags & MLX4_DEV_CAP_FLAG_IBOE)) | 535 | ((dev)->caps.flags & MLX4_DEV_CAP_FLAG_IBOE)) |
| 536 | 536 | ||
| 537 | #define MLX4_INVALID_SLAVE_ID 0xFF | ||
| 538 | |||
| 537 | static inline int mlx4_is_master(struct mlx4_dev *dev) | 539 | static inline int mlx4_is_master(struct mlx4_dev *dev) |
| 538 | { | 540 | { |
| 539 | return dev->flags & MLX4_FLAG_MASTER; | 541 | return dev->flags & MLX4_FLAG_MASTER; |
