Re: [PATCHv3 for-next 1/1] RDMA/rxe: Disable ipv6 features when ipv6.disable set in cmdline

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

 



On Thu, Apr 8, 2021 at 2:34 PM Jason Gunthorpe <jgg@xxxxxxxxxx> wrote:
>
> On Thu, Mar 25, 2021 at 09:27:23PM -0400, Zhu Yanjun wrote:
> > From: Zhu Yanjun <zyjzyj2000@xxxxxxxxx>
> >
> > 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.
> >
> > Fixes: 8700e3e7c4857 ("Soft RoCE driver")
> > Reported-by: Yi Zhang <yi.zhang@xxxxxxxxxx>
> > Signed-off-by: Zhu Yanjun <zyjzyj2000@xxxxxxxxx>
> > Reviewed-by: Leon Romanovsky <leonro@xxxxxxxxxx>
> > Tested-by: Yi Zhang <yi.zhang@xxxxxxxxxx>
> > 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(+)
> >
> > diff --git a/drivers/infiniband/sw/rxe/rxe_net.c b/drivers/infiniband/sw/rxe/rxe_net.c
> > index 01662727dca0..3b8ed007e8af 100644
> > +++ b/drivers/infiniband/sw/rxe/rxe_net.c
> > @@ -72,6 +72,9 @@ static struct dst_entry *rxe_find_route6(struct net_device *ndev,
> >       struct dst_entry *ndst;
> >       struct flowi6 fl6 = { { 0 } };
> >
> > +     if (!ipv6_mod_enabled())
> > +             return NULL;
> > +
> >       memset(&fl6, 0, sizeof(fl6));
> >       fl6.flowi6_oif = ndev->ifindex;
> >       memcpy(&fl6.saddr, saddr, sizeof(*saddr));
>
> What is this actually fixing?
>
> ndst = ipv6_stub->ipv6_dst_lookup_flow() will return an error if the
> ipv6 support is not loaded so why do we need more tests?

As what I said in commit log, when "When ipv6.disable=1 is set in
cmdline, ipv6 is actually disabled"
That is, when cat /proc/cmdline, the command line is
"
cat /proc/cmdline
BOOT_IMAGE=(hd0,msdos1)/vmlinuz-5.12.0-rc3+ root=/dev/mapper/cl-root
ro resume=/dev/mapper/cl-swap rd.lvm.lv=cl/root rd.lvm.lv=cl/swap
crashkernel=512M ipv6.disable=1
"
And if you make the above configurations, then modprobe rdma_rxe should work.
then ''rdma link add rxe0 type rxe netdev eth0" should work well.
ndst = ipv6_stub->ipv6_dst_lookup_flow should not be called.
Can you tell me how to disable IPV6 in your test host?

> in the stack. As such, the operations of ipv6 in RXE will fail.
> So ipv6 features in RXE should also be disabled in RXE."

>
> > @@ -616,6 +619,8 @@ static int rxe_net_ipv4_init(void)
> >  static int rxe_net_ipv6_init(void)
> >  {
> >  #if IS_ENABLED(CONFIG_IPV6)
> > +     if (!ipv6_mod_enabled())
> > +             return 0;
> >
> >       recv_sockets.sk6 = rxe_setup_udp_tunnel(&init_net,
> >                                               htons(ROCE_V2_UDP_DPORT), true);
>
> rxe_setup_udp_tunnel() should already fail naturally because the V6
> socket won't be created
>
> What is the actual symptom this patch is trying to address?

This patch is try to fix the problem in the link
https://lore.kernel.org/linux-rdma/880d7b59-4b17-a44f-1a91-88257bfc3aaa@xxxxxxxxxx/T/#t

Zhu Yanjun

>
> Jason



[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