Message ID | 1426060274-2930-1-git-send-email-ying.xue@windriver.com |
---|---|
State | Changes Requested, archived |
Delegated to: | David Miller |
Headers | show |
From: Ying Xue <ying.xue@windriver.com> Date: Wed, 11 Mar 2015 15:51:13 +0800 > diff --git a/net/tipc/Kconfig b/net/tipc/Kconfig > index c25a3a1..5bb8fc9 100644 > --- a/net/tipc/Kconfig > +++ b/net/tipc/Kconfig > @@ -29,6 +29,7 @@ config TIPC_MEDIA_IB > config TIPC_MEDIA_UDP > bool "IP/UDP media type support" > depends on TIPC > + depends on (IPV6=y || IPV6=n) > select NET_UDP_TUNNEL > help > Saying Y here will enable support for running TIPC over IP/UDP This really is not what you want. You want to enable TIPC_MEDIA_UDP if IPV6 is "compatible" with TIPC, what you're using here is a sledgehammer. I would really suggest breaking this facility out into it's own module, then you can mark it tristate and do this correctly. -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On 03/12/2015 05:59 AM, David Miller wrote: > From: Ying Xue <ying.xue@windriver.com> > Date: Wed, 11 Mar 2015 15:51:13 +0800 > >> diff --git a/net/tipc/Kconfig b/net/tipc/Kconfig >> index c25a3a1..5bb8fc9 100644 >> --- a/net/tipc/Kconfig >> +++ b/net/tipc/Kconfig >> @@ -29,6 +29,7 @@ config TIPC_MEDIA_IB >> config TIPC_MEDIA_UDP >> bool "IP/UDP media type support" >> depends on TIPC >> + depends on (IPV6=y || IPV6=n) >> select NET_UDP_TUNNEL >> help >> Saying Y here will enable support for running TIPC over IP/UDP > > This really is not what you want. > > You want to enable TIPC_MEDIA_UDP if IPV6 is "compatible" with TIPC, > what you're using here is a sledgehammer. > > I would really suggest breaking this facility out into it's own > module, then you can mark it tristate and do this correctly. > > Thank you for the review. OK, I will change the code again following your suggestions. Regards, Ying -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/net/tipc/Kconfig b/net/tipc/Kconfig index c25a3a1..5bb8fc9 100644 --- a/net/tipc/Kconfig +++ b/net/tipc/Kconfig @@ -29,6 +29,7 @@ config TIPC_MEDIA_IB config TIPC_MEDIA_UDP bool "IP/UDP media type support" depends on TIPC + depends on (IPV6=y || IPV6=n) select NET_UDP_TUNNEL help Saying Y here will enable support for running TIPC over IP/UDP diff --git a/net/tipc/udp_media.c b/net/tipc/udp_media.c index fc2fb11..ee0329d 100644 --- a/net/tipc/udp_media.c +++ b/net/tipc/udp_media.c @@ -148,7 +148,7 @@ static int tipc_udp_send_msg(struct net *net, struct sk_buff *skb, struct tipc_bearer *b, struct tipc_media_addr *dest) { - int ttl, err = 0; + int ttl, err = -EAFNOSUPPORT; struct udp_bearer *ub; struct udp_media_addr *dst = (struct udp_media_addr *)&dest->value; struct udp_media_addr *src = (struct udp_media_addr *)&b->addr.value; @@ -247,10 +247,12 @@ static int enable_mcast(struct udp_bearer *ub, struct udp_media_addr *remote) mreqn.imr_multiaddr = remote->ipv4; mreqn.imr_ifindex = ub->ifindex; err = __ip_mc_join_group(sk, &mreqn); +#if IS_ENABLED(CONFIG_IPV6) } else { if (!ipv6_addr_is_multicast(&remote->ipv6)) return 0; err = __ipv6_sock_mc_join(sk, ub->ifindex, &remote->ipv6); +#endif } return err; }
When CONFIG_IPV6 option is disabled, below error will appear while building TIPC module: ERROR: "__ipv6_sock_mc_join" [net/tipc/tipc.ko] undefined! make[1]: *** [__modpost] Error 1 make: *** [net/tipc/tipc.ko] Error 1 This is because we don't check whether or not the CONFIG_IPV6 is enabled when calling __ipv6_sock_mc_join(). In addition, especially when TIPC=y, TIPC_MEDIA_UDP=y, and IPV6=m, TIPC module is also unable to be successfully built. Therefore, we add a dependency condition like (IPV6=y || IPV6=n) to avoid the error. Fixes: d0f91938bede ("tipc: add ip/udp media type") Reported-by: Wu Fengguang <fengguang.wu@intel.com> Cc: Kbuild test robot <kbuild-all@01.org> Cc: Willem de Bruijn <willemb@google.com> Signed-off-by: Ying Xue <ying.xue@windriver.com> --- v3: - Move the new dependency from TIPC to TIPC_MEDIA_UDP, which is suggested by Willem and David - Change IPV6 of new dependency to IPV6=y - Change initial err value from 0 to -EAFNOSUPPORT suggested by Willem v2: - Fix another compile error when TIPC=y, TIPC_MEDIA_UDP=y, and IPV6=m net/tipc/Kconfig | 1 + net/tipc/udp_media.c | 4 +++- 2 files changed, 4 insertions(+), 1 deletion(-)