IB/mlx4: Fix port query for 56Gb Ethernet links
authorSaeed Mahameed <saeedm@mellanox.com>
Thu, 10 Nov 2016 09:30:59 +0000 (11:30 +0200)
committerDoug Ledford <dledford@redhat.com>
Thu, 17 Nov 2016 01:04:48 +0000 (20:04 -0500)
Report the correct speed in the port attributes when using a 56Gbps
ethernet link.  Without this change the field is incorrectly set to 10.

Fixes: a9c766bb75ee ('IB/mlx4: Fix info returned when querying IBoE ports')
Fixes: 2e96691c31ec ('IB: Use central enum for speed instead of hard-coded values')
Signed-off-by: Saeed Mahameed <saeedm@mellanox.com>
Signed-off-by: Yishai Hadas <yishaih@mellanox.com>
Signed-off-by: Daniel Jurgens <danielj@mellanox.com>
Signed-off-by: Leon Romanovsky <leon@kernel.org>
Signed-off-by: Doug Ledford <dledford@redhat.com>
drivers/infiniband/hw/mlx4/main.c

index 05ab3cb34cb345dd50dcecbe0f8a3aca0e5bcb17..4054a1bfabb5f333faffc1914a5ebc8c2d8d2472 100644 (file)
@@ -698,9 +698,11 @@ static int eth_link_query_port(struct ib_device *ibdev, u8 port,
        if (err)
                goto out;
 
-       props->active_width     =  (((u8 *)mailbox->buf)[5] == 0x40) ?
-                                               IB_WIDTH_4X : IB_WIDTH_1X;
-       props->active_speed     = IB_SPEED_QDR;
+       props->active_width     =  (((u8 *)mailbox->buf)[5] == 0x40) ||
+                                  (((u8 *)mailbox->buf)[5] == 0x20 /*56Gb*/) ?
+                                          IB_WIDTH_4X : IB_WIDTH_1X;
+       props->active_speed     =  (((u8 *)mailbox->buf)[5] == 0x20 /*56Gb*/) ?
+                                          IB_SPEED_FDR : IB_SPEED_QDR;
        props->port_cap_flags   = IB_PORT_CM_SUP | IB_PORT_IP_BASED_GIDS;
        props->gid_tbl_len      = mdev->dev->caps.gid_table_len[port];
        props->max_msg_sz       = mdev->dev->caps.max_msg_sz;