Currently we parse max_msg_sz from the wrong offset in QUERY_DEV_CAP, fix to use the right offset.
Unified · Split
| @@ -781,10 +781,10 @@ int mlx4_QUERY_DEV_CAP(struct mlx4_dev *dev, struct mlx4_dev_cap *dev_cap) · 780 unmodified lines | |||
| 781 | MLX4_GET(field, outbox, QUERY_DEV_CAP_VL_PORT_OFFSET); | 781 | MLX4_GET(field, outbox, QUERY_DEV_CAP_VL_PORT_OFFSET); |
| 782 | dev_cap->num_ports = field & 0xf; | 782 | dev_cap->num_ports = field & 0xf; |
| 783 | MLX4_GET(field, outbox, QUERY_DEV_CAP_MAX_MSG_SZ_OFFSET); | 783 | MLX4_GET(field, outbox, QUERY_DEV_CAP_MAX_MSG_SZ_OFFSET); |
| 784 | dev_cap->max_msg_sz = 1 << (field & 0x1f); | ||
| 784 | MLX4_GET(field, outbox, QUERY_DEV_CAP_PORT_FLOWSTATS_COUNTERS_OFFSET); | 785 | MLX4_GET(field, outbox, QUERY_DEV_CAP_PORT_FLOWSTATS_COUNTERS_OFFSET); |
| 785 | if (field & 0x10) | 786 | if (field & 0x10) |
| 786 | dev_cap->flags2 |= MLX4_DEV_CAP_FLAG2_FLOWSTATS_EN; | 787 | dev_cap->flags2 |= MLX4_DEV_CAP_FLAG2_FLOWSTATS_EN; |
| 787 | dev_cap->max_msg_sz = 1 << (field & 0x1f); | ||
| 788 | MLX4_GET(field, outbox, QUERY_DEV_CAP_FLOW_STEERING_RANGE_EN_OFFSET); | 788 | MLX4_GET(field, outbox, QUERY_DEV_CAP_FLOW_STEERING_RANGE_EN_OFFSET); |
| 789 | if (field & 0x80) | 789 | if (field & 0x80) |
| 790 | dev_cap->flags2 |= MLX4_DEV_CAP_FLAG2_FS_EN; | 790 | dev_cap->flags2 |= MLX4_DEV_CAP_FLAG2_FS_EN; |