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

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

 




在 2021/6/2 21:10, Kamal Heib 写道:
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;

The returned value is changed.

Zhu Yanjun

+               }
+
                 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