lkml.org 
[lkml]   [2017]   [May]   [23]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.9 021/164] infiniband: call ipv6 route lookup via the stub interface
    Date
    4.9-stable review patch.  If anyone has any objections, please let me know.

    ------------------

    From: Paolo Abeni <pabeni@redhat.com>

    commit eea40b8f624f25cbc02d55f2d93203f60cee9341 upstream.

    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@redhat.com>
    Signed-off-by: Doug Ledford <dledford@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

    ---
    drivers/infiniband/core/addr.c | 4 ++--
    1 file changed, 2 insertions(+), 2 deletions(-)

    --- a/drivers/infiniband/core/addr.c
    +++ b/drivers/infiniband/core/addr.c
    @@ -444,8 +444,8 @@ static int addr6_resolve(struct sockaddr
    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;

    \
     
     \ /
      Last update: 2017-05-23 22:25    [W:2.368 / U:0.020 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site