From patchwork Wed Mar 11 07:51:13 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ying Xue X-Patchwork-Id: 448836 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 25A2D140172 for ; Wed, 11 Mar 2015 18:51:56 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751576AbbCKHvq (ORCPT ); Wed, 11 Mar 2015 03:51:46 -0400 Received: from mail1.windriver.com ([147.11.146.13]:47579 "EHLO mail1.windriver.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751503AbbCKHvk (ORCPT ); Wed, 11 Mar 2015 03:51:40 -0400 Received: from ALA-HCB.corp.ad.wrs.com (ala-hcb.corp.ad.wrs.com [147.11.189.41]) by mail1.windriver.com (8.14.9/8.14.5) with ESMTP id t2B7pO3Y021942 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=FAIL); Wed, 11 Mar 2015 00:51:24 -0700 (PDT) Received: from ying.corp.ad.wrs.com (128.224.163.180) by ALA-HCB.corp.ad.wrs.com (147.11.189.41) with Microsoft SMTP Server id 14.3.224.2; Wed, 11 Mar 2015 00:51:24 -0700 From: Ying Xue To: CC: , , , , , , , Subject: [PATCH net-next v3] tipc: fix undefined __ipv6_sock_mc_join compile error Date: Wed, 11 Mar 2015 15:51:13 +0800 Message-ID: <1426060274-2930-1-git-send-email-ying.xue@windriver.com> X-Mailer: git-send-email 1.7.9.5 MIME-Version: 1.0 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org 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 Cc: Kbuild test robot Cc: Willem de Bruijn Signed-off-by: Ying Xue --- 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(-) 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; }