From: Chuck Lever Date: Mon, 17 Jul 2023 15:12:19 +0000 (-0400) Subject: RDMA/core: Set gid_attr.ndev for iWARP devices X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=448d15aab34293bf139f17c17910e854d9ad7d6c;p=linux.git RDMA/core: Set gid_attr.ndev for iWARP devices Have the iwarp side properly set the ndev in the device's sgid_attrs so that address resolution can treat it more like a RoCE device. Link: https://lore.kernel.org/r/168960673933.3007.8043081822081877578.stgit@manet.1015granger.net Suggested-by: Jason Gunthorpe Reviewed-by: Tom Talpey Signed-off-by: Chuck Lever Signed-off-by: Jason Gunthorpe --- diff --git a/drivers/infiniband/core/cache.c b/drivers/infiniband/core/cache.c index 2e91d88793265..33f9d02f9b600 100644 --- a/drivers/infiniband/core/cache.c +++ b/drivers/infiniband/core/cache.c @@ -1457,6 +1457,17 @@ static int config_non_roce_gid_cache(struct ib_device *device, i); goto err; } + + if (rdma_protocol_iwarp(device, port)) { + struct net_device *ndev; + + ndev = ib_device_get_netdev(device, port); + if (!ndev) + continue; + RCU_INIT_POINTER(gid_attr.ndev, ndev); + dev_put(ndev); + } + gid_attr.index = i; tprops->subnet_prefix = be64_to_cpu(gid_attr.gid.global.subnet_prefix);