Message ID | 20210603090112.36341-1-kamalheib1@gmail.com (mailing list archive) |
---|---|
State | Accepted |
Delegated to: | Jason Gunthorpe |
Headers | show |
Series | [for-rc,v1] RDMA/rxe: Fix failure during driver load | expand |
June 3, 2021 5:01 PM, "Kamal Heib" <kamalheib1@gmail.com> wrote: > To avoid the following failure when trying to load the rdma_rxe module > while IPv6 is disabled, add a check for EAFNOSUPPORT to ignore the > failure, also delete the needless debug print from rxe_setup_udp_tunnel(). > > $ modprobe rdma_rxe > modprobe: ERROR: could not insert 'rdma_rxe': Operation not permitted > > Fixes: dfdd6158ca2c ("IB/rxe: Fix kernel panic in udp_setup_tunnel") > Signed-off-by: Kamal Heib <kamalheib1@gmail.com> > --- > drivers/infiniband/sw/rxe/rxe_net.c | 10 +++++++--- > 1 file changed, 7 insertions(+), 3 deletions(-) > > diff --git a/drivers/infiniband/sw/rxe/rxe_net.c b/drivers/infiniband/sw/rxe/rxe_net.c > index 01662727dca0..6cb4446a0bdb 100644 > --- a/drivers/infiniband/sw/rxe/rxe_net.c > +++ b/drivers/infiniband/sw/rxe/rxe_net.c > @@ -207,10 +207,8 @@ 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) { > - pr_err("failed to create udp socket. err = %d\n", err); > + if (err < 0) > return ERR_PTR(err); > - } > > tnl_cfg.encap_type = 1; > tnl_cfg.encap_rcv = rxe_udp_encap_recv; > @@ -619,6 +617,12 @@ static int rxe_net_ipv6_init(void) > > recv_sockets.sk6 = rxe_setup_udp_tunnel(&init_net, > htons(ROCE_V2_UDP_DPORT), true); > + if (PTR_ERR(recv_sockets.sk6) == -EAFNOSUPPORT) { > + recv_sockets.sk6 = NULL; > + pr_warn("IPv6 is not supported can not create UDP socket\n"); This warning doesn't read smoothly. Zhu Yanjun > + return 0; > + } > + > if (IS_ERR(recv_sockets.sk6)) { > recv_sockets.sk6 = NULL; > pr_err("Failed to create IPv6 UDP tunnel\n"); > -- > 2.26.3
On Thu, Jun 03, 2021 at 12:01:12PM +0300, Kamal Heib wrote: > To avoid the following failure when trying to load the rdma_rxe module > while IPv6 is disabled, add a check for EAFNOSUPPORT to ignore the > failure, also delete the needless debug print from rxe_setup_udp_tunnel(). > > $ modprobe rdma_rxe > modprobe: ERROR: could not insert 'rdma_rxe': Operation not permitted > > Fixes: dfdd6158ca2c ("IB/rxe: Fix kernel panic in udp_setup_tunnel") > Signed-off-by: Kamal Heib <kamalheib1@gmail.com> > -- > drivers/infiniband/sw/rxe/rxe_net.c | 10 +++++++--- > 1 file changed, 7 insertions(+), 3 deletions(-) I tidied the pr_warn english and put this to for-next It has been broken for so long, and in such a small way, I can't see this as a -rc fix. Thanks, Jason
On Thu, Jun 03, 2021 at 04:51:45PM -0300, Jason Gunthorpe wrote: > On Thu, Jun 03, 2021 at 12:01:12PM +0300, Kamal Heib wrote: > > To avoid the following failure when trying to load the rdma_rxe module > > while IPv6 is disabled, add a check for EAFNOSUPPORT to ignore the > > failure, also delete the needless debug print from rxe_setup_udp_tunnel(). > > > > $ modprobe rdma_rxe > > modprobe: ERROR: could not insert 'rdma_rxe': Operation not permitted > > > > Fixes: dfdd6158ca2c ("IB/rxe: Fix kernel panic in udp_setup_tunnel") > > Signed-off-by: Kamal Heib <kamalheib1@gmail.com> > > -- > > drivers/infiniband/sw/rxe/rxe_net.c | 10 +++++++--- > > 1 file changed, 7 insertions(+), 3 deletions(-) > > I tidied the pr_warn english and put this to for-next > > It has been broken for so long, and in such a small way, I can't see > this as a -rc fix. > > Thanks, > Jason Thanks a lot Jason. Could you please add the reported-by tag to this patch? - I've missed it, Sorry :-(. Reported-by: Yi Zhang <yi.zhang@redhat.com> Thanks, Kamal
diff --git a/drivers/infiniband/sw/rxe/rxe_net.c b/drivers/infiniband/sw/rxe/rxe_net.c index 01662727dca0..6cb4446a0bdb 100644 --- a/drivers/infiniband/sw/rxe/rxe_net.c +++ b/drivers/infiniband/sw/rxe/rxe_net.c @@ -207,10 +207,8 @@ 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) { - pr_err("failed to create udp socket. err = %d\n", err); + if (err < 0) return ERR_PTR(err); - } tnl_cfg.encap_type = 1; tnl_cfg.encap_rcv = rxe_udp_encap_recv; @@ -619,6 +617,12 @@ static int rxe_net_ipv6_init(void) recv_sockets.sk6 = rxe_setup_udp_tunnel(&init_net, htons(ROCE_V2_UDP_DPORT), true); + if (PTR_ERR(recv_sockets.sk6) == -EAFNOSUPPORT) { + recv_sockets.sk6 = NULL; + pr_warn("IPv6 is not supported can not create UDP socket\n"); + return 0; + } + if (IS_ERR(recv_sockets.sk6)) { recv_sockets.sk6 = NULL; pr_err("Failed to create IPv6 UDP tunnel\n");
To avoid the following failure when trying to load the rdma_rxe module while IPv6 is disabled, add a check for EAFNOSUPPORT to ignore the failure, also delete the needless debug print from rxe_setup_udp_tunnel(). $ modprobe rdma_rxe modprobe: ERROR: could not insert 'rdma_rxe': Operation not permitted Fixes: dfdd6158ca2c ("IB/rxe: Fix kernel panic in udp_setup_tunnel") Signed-off-by: Kamal Heib <kamalheib1@gmail.com> --- drivers/infiniband/sw/rxe/rxe_net.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-)