diff mbox series

[PATCHv4,for-next,1/1] RDMA/rxe: Disable ipv6 features when ipv6.disable in cmdline

Message ID 20210412015641.5016-1-yanjun.zhu@intel.com (mailing list archive)
State Superseded
Headers show
Series [PATCHv4,for-next,1/1] RDMA/rxe: Disable ipv6 features when ipv6.disable in cmdline | expand

Commit Message

Zhu Yanjun April 12, 2021, 1:56 a.m. UTC
From: Zhu Yanjun <zyjzyj2000@gmail.com>

When ipv6.disable=1 is set in cmdline, ipv6 is actually disabled
in the stack. As such, the operations of ipv6 in RXE will fail.
So ipv6 features in RXE should also be disabled in RXE.

Link: https://lore.kernel.org/linux-rdma/880d7b59-4b17-a44f-1a91-88257bfc3aaa@redhat.com/T/#t
Fixes: 8700e3e7c4857 ("Soft RoCE driver")
Reported-by: Yi Zhang <yi.zhang@redhat.com>
Signed-off-by: Zhu Yanjun <zyjzyj2000@gmail.com>
Reviewed-by: Leon Romanovsky <leonro@nvidia.com>
Tested-by: Yi Zhang <yi.zhang@redhat.com>
---
V3->V4: I do not know how to reproduce Jason's problem. So I just ignore
        the -EAFNOSUPPORT error. Hope this can fix Jason's problem.
V2->V3: Remove print message
V1->V2: Modify the pr_info messages
---
 drivers/infiniband/sw/rxe/rxe_net.c | 5 +++++
 1 file changed, 5 insertions(+)

Comments

Jason Gunthorpe April 12, 2021, 6:44 p.m. UTC | #1
On Sun, Apr 11, 2021 at 09:56:41PM -0400, Zhu Yanjun wrote:
> From: Zhu Yanjun <zyjzyj2000@gmail.com>
> 
> When ipv6.disable=1 is set in cmdline, ipv6 is actually disabled
> in the stack. As such, the operations of ipv6 in RXE will fail.
> So ipv6 features in RXE should also be disabled in RXE.
> 
> Link: https://lore.kernel.org/linux-rdma/880d7b59-4b17-a44f-1a91-88257bfc3aaa@redhat.com/T/#t
> Fixes: 8700e3e7c4857 ("Soft RoCE driver")
> Reported-by: Yi Zhang <yi.zhang@redhat.com>
> Signed-off-by: Zhu Yanjun <zyjzyj2000@gmail.com>
> Reviewed-by: Leon Romanovsky <leonro@nvidia.com>
> Tested-by: Yi Zhang <yi.zhang@redhat.com>

Is this signature block accurate? I'm pretty sure Leon didn't look at
this version of the patch.

Did Yi test this version, or is this leftover from a prior version?

> ---
> V3->V4: I do not know how to reproduce Jason's problem. So I just ignore
>         the -EAFNOSUPPORT error. Hope this can fix Jason's problem.

Who is Jason?

> diff --git a/drivers/infiniband/sw/rxe/rxe_net.c b/drivers/infiniband/sw/rxe/rxe_net.c
> index 01662727dca0..b12137257af7 100644
> --- a/drivers/infiniband/sw/rxe/rxe_net.c
> +++ b/drivers/infiniband/sw/rxe/rxe_net.c
> @@ -620,6 +620,11 @@ static int rxe_net_ipv6_init(void)
>  	recv_sockets.sk6 = rxe_setup_udp_tunnel(&init_net,
>  						htons(ROCE_V2_UDP_DPORT), true);
>  	if (IS_ERR(recv_sockets.sk6)) {
> +		/* Though IPv6 is not supported, IPv4 still needs to continue
> +		 */
> +		if (PTR_ERR(recv_sockets.sk6) == -EAFNOSUPPORT)
> +			return 0;

At least this looks OK to me and the original report certainly said
the error was EAFNOSUPPORT

Please clarify what is going on with the signature block

Jason
Leon Romanovsky April 13, 2021, 6:11 a.m. UTC | #2
On Mon, Apr 12, 2021 at 03:44:07PM -0300, Jason Gunthorpe wrote:
> On Sun, Apr 11, 2021 at 09:56:41PM -0400, Zhu Yanjun wrote:
> > From: Zhu Yanjun <zyjzyj2000@gmail.com>
> > 
> > When ipv6.disable=1 is set in cmdline, ipv6 is actually disabled
> > in the stack. As such, the operations of ipv6 in RXE will fail.
> > So ipv6 features in RXE should also be disabled in RXE.
> > 
> > Link: https://lore.kernel.org/linux-rdma/880d7b59-4b17-a44f-1a91-88257bfc3aaa@redhat.com/T/#t
> > Fixes: 8700e3e7c4857 ("Soft RoCE driver")
> > Reported-by: Yi Zhang <yi.zhang@redhat.com>
> > Signed-off-by: Zhu Yanjun <zyjzyj2000@gmail.com>
> > Reviewed-by: Leon Romanovsky <leonro@nvidia.com>
> > Tested-by: Yi Zhang <yi.zhang@redhat.com>
> 
> Is this signature block accurate? I'm pretty sure Leon didn't look at
> this version of the patch.

Yes, I didn't look.

> 
> Did Yi test this version, or is this leftover from a prior version?
> 
> > ---
> > V3->V4: I do not know how to reproduce Jason's problem. So I just ignore
> >         the -EAFNOSUPPORT error. Hope this can fix Jason's problem.
> 
> Who is Jason?
> 
> > diff --git a/drivers/infiniband/sw/rxe/rxe_net.c b/drivers/infiniband/sw/rxe/rxe_net.c
> > index 01662727dca0..b12137257af7 100644
> > --- a/drivers/infiniband/sw/rxe/rxe_net.c
> > +++ b/drivers/infiniband/sw/rxe/rxe_net.c
> > @@ -620,6 +620,11 @@ static int rxe_net_ipv6_init(void)
> >  	recv_sockets.sk6 = rxe_setup_udp_tunnel(&init_net,
> >  						htons(ROCE_V2_UDP_DPORT), true);
> >  	if (IS_ERR(recv_sockets.sk6)) {
> > +		/* Though IPv6 is not supported, IPv4 still needs to continue
> > +		 */
> > +		if (PTR_ERR(recv_sockets.sk6) == -EAFNOSUPPORT)
> > +			return 0;
> 
> At least this looks OK to me and the original report certainly said
> the error was EAFNOSUPPORT

The failure can be received only if udp_sock_create() fails in the
rxe_setup_udp_tunnel(). It will print an error despite us not want this.

> 
> Please clarify what is going on with the signature block

And fix error print.

Thanks

> 
> Jason
Zhu Yanjun April 13, 2021, 6:31 a.m. UTC | #3
On Tue, Apr 13, 2021 at 2:11 PM Leon Romanovsky <leonro@nvidia.com> wrote:
>
> On Mon, Apr 12, 2021 at 03:44:07PM -0300, Jason Gunthorpe wrote:
> > On Sun, Apr 11, 2021 at 09:56:41PM -0400, Zhu Yanjun wrote:
> > > From: Zhu Yanjun <zyjzyj2000@gmail.com>
> > >
> > > When ipv6.disable=1 is set in cmdline, ipv6 is actually disabled
> > > in the stack. As such, the operations of ipv6 in RXE will fail.
> > > So ipv6 features in RXE should also be disabled in RXE.
> > >
> > > Link: https://lore.kernel.org/linux-rdma/880d7b59-4b17-a44f-1a91-88257bfc3aaa@redhat.com/T/#t
> > > Fixes: 8700e3e7c4857 ("Soft RoCE driver")
> > > Reported-by: Yi Zhang <yi.zhang@redhat.com>
> > > Signed-off-by: Zhu Yanjun <zyjzyj2000@gmail.com>
> > > Reviewed-by: Leon Romanovsky <leonro@nvidia.com>
> > > Tested-by: Yi Zhang <yi.zhang@redhat.com>
> >
> > Is this signature block accurate? I'm pretty sure Leon didn't look at
> > this version of the patch.
>
> Yes, I didn't look.

Sorry. This signature block is from the prior version. I will fix it.

>
> >
> > Did Yi test this version, or is this leftover from a prior version?
> >
> > > ---
> > > V3->V4: I do not know how to reproduce Jason's problem. So I just ignore
> > >         the -EAFNOSUPPORT error. Hope this can fix Jason's problem.
> >
> > Who is Jason?
> >
> > > diff --git a/drivers/infiniband/sw/rxe/rxe_net.c b/drivers/infiniband/sw/rxe/rxe_net.c
> > > index 01662727dca0..b12137257af7 100644
> > > --- a/drivers/infiniband/sw/rxe/rxe_net.c
> > > +++ b/drivers/infiniband/sw/rxe/rxe_net.c
> > > @@ -620,6 +620,11 @@ static int rxe_net_ipv6_init(void)
> > >     recv_sockets.sk6 = rxe_setup_udp_tunnel(&init_net,
> > >                                             htons(ROCE_V2_UDP_DPORT), true);
> > >     if (IS_ERR(recv_sockets.sk6)) {
> > > +           /* Though IPv6 is not supported, IPv4 still needs to continue
> > > +            */
> > > +           if (PTR_ERR(recv_sockets.sk6) == -EAFNOSUPPORT)
> > > +                   return 0;
> >
> > At least this looks OK to me and the original report certainly said
> > the error was EAFNOSUPPORT
>
> The failure can be received only if udp_sock_create() fails in the
> rxe_setup_udp_tunnel(). It will print an error despite us not want this.
>
> >
> > Please clarify what is going on with the signature block
>
> And fix error print.

Got it. I will fix the signature block and error print.

Zhu Yanjun

>
> Thanks
>
> >
> > Jason
diff mbox series

Patch

diff --git a/drivers/infiniband/sw/rxe/rxe_net.c b/drivers/infiniband/sw/rxe/rxe_net.c
index 01662727dca0..b12137257af7 100644
--- a/drivers/infiniband/sw/rxe/rxe_net.c
+++ b/drivers/infiniband/sw/rxe/rxe_net.c
@@ -620,6 +620,11 @@  static int rxe_net_ipv6_init(void)
 	recv_sockets.sk6 = rxe_setup_udp_tunnel(&init_net,
 						htons(ROCE_V2_UDP_DPORT), true);
 	if (IS_ERR(recv_sockets.sk6)) {
+		/* Though IPv6 is not supported, IPv4 still needs to continue
+		 */
+		if (PTR_ERR(recv_sockets.sk6) == -EAFNOSUPPORT)
+			return 0;
+
 		recv_sockets.sk6 = NULL;
 		pr_err("Failed to create IPv6 UDP tunnel\n");
 		return -1;