lkml.org 
[lkml]   [2021]   [Jul]   [12]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.13 445/800] RDMA/rxe: Fix failure during driver load
    Date
    From: Kamal Heib <kamalheib1@gmail.com>

    [ Upstream commit 32a25f2ea690dfaace19f7a3a916f5d7e1ddafe8 ]

    To avoid the following failure when trying to load the rdma_rxe module
    while IPv6 is disabled, add a check for EAFNOSUPPORT and ignore the
    failure, also delete the needless debug print from rxe_setup_udp_tunnel().

    $ modprobe rdma_rxe
    modprobe: ERROR: could not insert 'rdma_rxe': Operation not permitted

    Fixes: dfdd6158ca2c ("IB/rxe: Fix kernel panic in udp_setup_tunnel")
    Link: https://lore.kernel.org/r/20210603090112.36341-1-kamalheib1@gmail.com
    Reported-by: Yi Zhang <yi.zhang@redhat.com>
    Signed-off-by: Kamal Heib <kamalheib1@gmail.com>
    Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/infiniband/sw/rxe/rxe_net.c | 10 +++++++---
    1 file changed, 7 insertions(+), 3 deletions(-)

    diff --git a/drivers/infiniband/sw/rxe/rxe_net.c b/drivers/infiniband/sw/rxe/rxe_net.c
    index 01662727dca0..fc1ba4904279 100644
    --- a/drivers/infiniband/sw/rxe/rxe_net.c
    +++ b/drivers/infiniband/sw/rxe/rxe_net.c
    @@ -207,10 +207,8 @@ static struct socket *rxe_setup_udp_tunnel(struct net *net, __be16 port,

    /* Create UDP socket */
    err = udp_sock_create(net, &udp_cfg, &sock);
    - if (err < 0) {
    - pr_err("failed to create udp socket. err = %d\n", err);
    + if (err < 0)
    return ERR_PTR(err);
    - }

    tnl_cfg.encap_type = 1;
    tnl_cfg.encap_rcv = rxe_udp_encap_recv;
    @@ -619,6 +617,12 @@ static int rxe_net_ipv6_init(void)

    recv_sockets.sk6 = rxe_setup_udp_tunnel(&init_net,
    htons(ROCE_V2_UDP_DPORT), true);
    + if (PTR_ERR(recv_sockets.sk6) == -EAFNOSUPPORT) {
    + recv_sockets.sk6 = NULL;
    + pr_warn("IPv6 is not supported, can not create a UDPv6 socket\n");
    + return 0;
    + }
    +
    if (IS_ERR(recv_sockets.sk6)) {
    recv_sockets.sk6 = NULL;
    pr_err("Failed to create IPv6 UDP tunnel\n");
    --
    2.30.2


    \
     
     \ /
      Last update: 2021-07-12 10:44    [W:3.088 / U:0.184 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site