RDMA/hns: Fix wrong maximum DMA segment size
authorChengchang Tang <tangchengchang@huawei.com>
Thu, 27 Mar 2025 11:47:24 +0000 (19:47 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 25 Apr 2025 08:47:40 +0000 (10:47 +0200)
[ Upstream commit 9beb2c91fb86e0be70a5833c6730441fa3c9efa8 ]

Set maximum DMA segment size to 2G instead of UINT_MAX due to HW limit.

Fixes: e0477b34d9d1 ("RDMA: Explicitly pass in the dma_device to ib_register_device")
Link: https://patch.msgid.link/r/20250327114724.3454268-3-huangjunxian6@hisilicon.com
Signed-off-by: Chengchang Tang <tangchengchang@huawei.com>
Signed-off-by: Junxian Huang <huangjunxian6@hisilicon.com>
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/infiniband/hw/hns/hns_roce_main.c

index cf89a8db4f64cdc4334be4bd0fe3f859fba35258..8d0b63d4b50a6ca75ab9d1e89b93eb126d8e075e 100644 (file)
@@ -763,7 +763,7 @@ static int hns_roce_register_device(struct hns_roce_dev *hr_dev)
                if (ret)
                        return ret;
        }
-       dma_set_max_seg_size(dev, UINT_MAX);
+       dma_set_max_seg_size(dev, SZ_2G);
        ret = ib_register_device(ib_dev, "hns_%d", dev);
        if (ret) {
                dev_err(dev, "ib_register_device failed!\n");