* [PATCH rdma] infiniband: call ipv6 route lookup via the stub interface
@ 2017-04-28 9:20 Paolo Abeni
[not found] ` <09d4a8a81a499ab61ed6883ae1aa17c5fa0a5b49.1493368728.git.pabeni-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
0 siblings, 1 reply; 2+ messages in thread
From: Paolo Abeni @ 2017-04-28 9:20 UTC (permalink / raw)
To: linux-rdma-u79uwXL29TY76Z2rM5mHXA
Cc: Doug Ledford, Sean Hefty, Hal Rosenstock, Paolo Abeni
The infiniband address handle can be triggered to resolve an ipv6
address in response to MAD packets, regardless of the ipv6
module being disabled via the kernel command line argument.
That will cause a call into the ipv6 routing code, which is not
initialized, and a conseguent oops.
This commit addresses the above issue replacing the direct lookup
call with an indirect one via the ipv6 stub, which is properly
initialized according to the ipv6 status (e.g. if ipv6 is
disabled, the routing lookup fails gracefully)
Signed-off-by: Paolo Abeni <pabeni-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
---
drivers/infiniband/core/addr.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/infiniband/core/addr.c b/drivers/infiniband/core/addr.c
index 0f58f46..8fd108d 100644
--- a/drivers/infiniband/core/addr.c
+++ b/drivers/infiniband/core/addr.c
@@ -444,8 +444,8 @@ static int addr6_resolve(struct sockaddr_in6 *src_in,
fl6.saddr = src_in->sin6_addr;
fl6.flowi6_oif = addr->bound_dev_if;
- dst = ip6_route_output(addr->net, NULL, &fl6);
- if ((ret = dst->error))
+ ret = ipv6_stub->ipv6_dst_lookup(addr->net, NULL, &dst, &fl6);
+ if (ret < 0)
goto put;
rt = (struct rt6_info *)dst;
--
2.9.3
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [PATCH rdma] infiniband: call ipv6 route lookup via the stub interface
[not found] ` <09d4a8a81a499ab61ed6883ae1aa17c5fa0a5b49.1493368728.git.pabeni-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
@ 2017-04-28 16:56 ` Doug Ledford
0 siblings, 0 replies; 2+ messages in thread
From: Doug Ledford @ 2017-04-28 16:56 UTC (permalink / raw)
To: Paolo Abeni, linux-rdma-u79uwXL29TY76Z2rM5mHXA; +Cc: Sean Hefty, Hal Rosenstock
On Fri, 2017-04-28 at 11:20 +0200, Paolo Abeni wrote:
> The infiniband address handle can be triggered to resolve an ipv6
> address in response to MAD packets, regardless of the ipv6
> module being disabled via the kernel command line argument.
>
> That will cause a call into the ipv6 routing code, which is not
> initialized, and a conseguent oops.
>
> This commit addresses the above issue replacing the direct lookup
> call with an indirect one via the ipv6 stub, which is properly
> initialized according to the ipv6 status (e.g. if ipv6 is
> disabled, the routing lookup fails gracefully)
>
> Signed-off-by: Paolo Abeni <pabeni-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
Thanks Paolo, applied. I also added a Cc: to stable for kernel 3.12+
since that's when the stub was added.
--
Doug Ledford <dledford-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
GPG KeyID: B826A3330E572FDD
Key fingerprint = AE6B 1BDA 122B 23B4 265B 1274 B826 A333 0E57 2FDD
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2017-04-28 16:56 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-04-28 9:20 [PATCH rdma] infiniband: call ipv6 route lookup via the stub interface Paolo Abeni
[not found] ` <09d4a8a81a499ab61ed6883ae1aa17c5fa0a5b49.1493368728.git.pabeni-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2017-04-28 16:56 ` Doug Ledford
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.