Need to check for IPv6 linklocal address inside rdma_resolve_addr() in ibcore.

MFC after:	1 week
Sponsored by:	Mellanox Technologies
This commit is contained in:
Hans Petter Selasky 2018-03-05 12:04:34 +00:00
parent 6d36a2c769
commit 891538abb5
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=330496

View File

@ -107,6 +107,7 @@ const char *__attribute_const__ rdma_event_msg(enum rdma_cm_event_type event)
}
EXPORT_SYMBOL(rdma_event_msg);
static int cma_check_linklocal(struct rdma_dev_addr *, struct sockaddr *);
static void cma_add_one(struct ib_device *device);
static void cma_remove_one(struct ib_device *device, void *client_data);
@ -2807,6 +2808,10 @@ int rdma_resolve_addr(struct rdma_cm_id *id, struct sockaddr *src_addr,
if (dst_addr->sa_family == AF_IB) {
ret = cma_resolve_ib_addr(id_priv);
} else {
ret = cma_check_linklocal(&id->route.addr.dev_addr, dst_addr);
if (ret)
goto err;
ret = rdma_resolve_ip(&addr_client, cma_src_addr(id_priv),
dst_addr, &id->route.addr.dev_addr,
timeout_ms, addr_handler, id_priv);