On Tue, Jun 01, 2021 at 02:01:32PM -0300, Jason Gunthorpe wrote: > On Tue, Jun 01, 2021 at 11:59:44PM +0800, Zhu Yanjun wrote: > > On Tue, Jun 1, 2021 at 5:09 PM Kamal Heib <kamalheib1@xxxxxxxxx> wrote: > > > > > > On Tue, Jun 01, 2021 at 04:11:08PM +0800, Zhu Yanjun wrote: > > > > On Tue, Jun 1, 2021 at 3:56 PM kamal heib <kamalheib1@xxxxxxxxx> wrote: > > > > > > > > > > > > > > > > > > > > > On 1 Jun 2021, at 10:45, Zhu Yanjun <zyjzyj2000@xxxxxxxxx> wrote: > > > > > > > > > > > > On Tue, Jun 1, 2021 at 1:58 PM Kamal Heib <kamalheib1@xxxxxxxxx> wrote: > > > > > >> > > > > > >> To avoid the following failure when trying to load the rdma_rxe module > > > > > >> while IPv6 is disabled, Add a check to make sure that IPv6 is enabled > > > > > >> before trying to create the IPv6 UDP tunnel. > > > > > >> > > > > > >> $ modprobe rdma_rxe > > > > > >> modprobe: ERROR: could not insert 'rdma_rxe': Operation not permitted > > > > > > > > > > > > About this problem, this link: > > > > > > https://patchwork.kernel.org/project/linux-rdma/patch/20210413234252.12209-1-yanjun.zhu@xxxxxxxxx/ > > > > > > also tries to solve ipv6 problem. > > > > > > > > > > > > Zhu Yanjun > > > > > > > > > > > > > > > > Yes, but this patch is fixing the problem more cleanly and I’ve tested it. > > > > Please check this link > > https://lore.kernel.org/linux-rdma/20210326012723.41769-1-yanjun.zhu@xxxxxxxxx/T/ > > carefully. > > > > Please pay attention to the comments from Jason Gunthorpe > > I think the comment still holds, the correct fix is to detect the -97 > errno down in the call chain and just ignore ipv6 support in this > case. > > Jason OK, Could you please tell me what do you think about the following: diff --git a/drivers/infiniband/sw/rxe/rxe_net.c b/drivers/infiniband/sw/rxe/rxe_net.c index 01662727dca0..144d9e1c1c3d 100644 --- a/drivers/infiniband/sw/rxe/rxe_net.c +++ b/drivers/infiniband/sw/rxe/rxe_net.c @@ -208,6 +208,11 @@ 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) { + if (ipv6 && (err == -EAFNOSUPPORT)) { + pr_warn("IPv6 is not supported can not create UDP socket\n"); + return NULL; + } + pr_err("failed to create udp socket. err = %d\n", err); return ERR_PTR(err); } Thanks, Kamal