diff options
author | Chengchang Tang <tangchengchang@huawei.com> | 2023-08-04 09:27:08 +0800 |
---|---|---|
committer | Leon Romanovsky <leon@kernel.org> | 2023-08-07 16:46:58 +0300 |
commit | df1bcf90a66a10967a3a43510b42cb3566208011 (patch) | |
tree | 61efad9c2b434266a29a6dd3f22432e0f6566266 /drivers/infiniband/hw | |
parent | 14611b9b984125b2da5966d0725fdd89f6564c45 (diff) | |
download | linux-stable-df1bcf90a66a10967a3a43510b42cb3566208011.tar.gz linux-stable-df1bcf90a66a10967a3a43510b42cb3566208011.tar.bz2 linux-stable-df1bcf90a66a10967a3a43510b42cb3566208011.zip |
RDMA/hns: Fix port active speed
HW supports a variety of different speed, but the current speed
is fixed.
The real speed should be querried from ethernet.
Fixes: 9a4435375cd1 ("IB/hns: Add driver files for hns RoCE driver")
Signed-off-by: Chengchang Tang <tangchengchang@huawei.com>
Signed-off-by: Junxian Huang <huangjunxian6@hisilicon.com>
Link: https://lore.kernel.org/r/20230804012711.808069-2-huangjunxian6@hisilicon.com
Signed-off-by: Leon Romanovsky <leon@kernel.org>
Diffstat (limited to 'drivers/infiniband/hw')
-rw-r--r-- | drivers/infiniband/hw/hns/hns_roce_main.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/drivers/infiniband/hw/hns/hns_roce_main.c b/drivers/infiniband/hw/hns/hns_roce_main.c index 485e110ca433..9141eadf33d2 100644 --- a/drivers/infiniband/hw/hns/hns_roce_main.c +++ b/drivers/infiniband/hw/hns/hns_roce_main.c @@ -219,6 +219,7 @@ static int hns_roce_query_port(struct ib_device *ib_dev, u32 port_num, unsigned long flags; enum ib_mtu mtu; u32 port; + int ret; port = port_num - 1; @@ -231,8 +232,10 @@ static int hns_roce_query_port(struct ib_device *ib_dev, u32 port_num, IB_PORT_BOOT_MGMT_SUP; props->max_msg_sz = HNS_ROCE_MAX_MSG_LEN; props->pkey_tbl_len = 1; - props->active_width = IB_WIDTH_4X; - props->active_speed = 1; + ret = ib_get_eth_speed(ib_dev, port_num, &props->active_speed, + &props->active_width); + if (ret) + ibdev_warn(ib_dev, "failed to get speed, ret = %d.\n", ret); spin_lock_irqsave(&hr_dev->iboe.lock, flags); |