Re: [PATCH for-rc] RDMA/rxe: Fix failure during driver load

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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



[Index of Archives]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Photo]     [Yosemite News]     [Yosemite Photos]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux