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 <jgg@nvidia.com> Reviewed-by: Tom Talpey <tom@talpey.com> Signed-off-by: Chuck Lever <chuck.lever@oracle.com> Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
This commit is contained in:
committed by
Jason Gunthorpe
parent
bad5b6e34f
commit
448d15aab3
@ -1457,6 +1457,17 @@ static int config_non_roce_gid_cache(struct ib_device *device,
|
|||||||
i);
|
i);
|
||||||
goto err;
|
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;
|
gid_attr.index = i;
|
||||||
tprops->subnet_prefix =
|
tprops->subnet_prefix =
|
||||||
be64_to_cpu(gid_attr.gid.global.subnet_prefix);
|
be64_to_cpu(gid_attr.gid.global.subnet_prefix);
|
||||||
|
Reference in New Issue
Block a user