Commit 8eeee16d authored by Moni Shoua's avatar Moni Shoua Committed by Greg Kroah-Hartman

IB/core: Namespace is mandatory input for address resolution

commit bebb2a47 upstream.

In function addr_resolve() the namespace is a required input parameter
and not an output. It is passed later for searching the routing table
and device addresses. Also, it shouldn't be copied back to the caller.

Fixes: 565edd1d ('IB/addr: Pass network namespace as a parameter')
Signed-off-by: default avatarMoni Shoua <monis@mellanox.com>
Signed-off-by: default avatarLeon Romanovsky <leon@kernel.org>
Signed-off-by: default avatarDoug Ledford <dledford@redhat.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent adbb4555
...@@ -510,6 +510,11 @@ static int addr_resolve(struct sockaddr *src_in, ...@@ -510,6 +510,11 @@ static int addr_resolve(struct sockaddr *src_in,
struct dst_entry *dst; struct dst_entry *dst;
int ret; int ret;
if (!addr->net) {
pr_warn_ratelimited("%s: missing namespace\n", __func__);
return -EINVAL;
}
if (src_in->sa_family == AF_INET) { if (src_in->sa_family == AF_INET) {
struct rtable *rt = NULL; struct rtable *rt = NULL;
const struct sockaddr_in *dst_in4 = const struct sockaddr_in *dst_in4 =
...@@ -547,7 +552,6 @@ static int addr_resolve(struct sockaddr *src_in, ...@@ -547,7 +552,6 @@ static int addr_resolve(struct sockaddr *src_in,
} }
addr->bound_dev_if = ndev->ifindex; addr->bound_dev_if = ndev->ifindex;
addr->net = dev_net(ndev);
dev_put(ndev); dev_put(ndev);
return ret; return ret;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment