Browse Source

tipc: fix build issue when building without IPv6

We can't directly call ipv6_sock_mc_join() but should use the stub
instead and protect it around IS_ENABLED.

Fixes: d0f91938bede ("tipc: add ip/udp media type")
Signed-off-by: Marcelo Ricardo Leitner <marcelo.leitner@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Marcelo Ricardo Leitner 10 years ago
parent
commit
446981e5fc
1 changed files with 5 additions and 1 deletions
  1. 5 1
      net/tipc/udp_media.c

+ 5 - 1
net/tipc/udp_media.c

@@ -44,6 +44,7 @@
 #include <net/sock.h>
 #include <net/sock.h>
 #include <net/ip.h>
 #include <net/ip.h>
 #include <net/udp_tunnel.h>
 #include <net/udp_tunnel.h>
+#include <net/addrconf.h>
 #include <linux/tipc_netlink.h>
 #include <linux/tipc_netlink.h>
 #include "core.h"
 #include "core.h"
 #include "bearer.h"
 #include "bearer.h"
@@ -247,10 +248,13 @@ static int enable_mcast(struct udp_bearer *ub, struct udp_media_addr *remote)
 		mreqn.imr_multiaddr = remote->ipv4;
 		mreqn.imr_multiaddr = remote->ipv4;
 		mreqn.imr_ifindex = ub->ifindex;
 		mreqn.imr_ifindex = ub->ifindex;
 		err = ip_mc_join_group(sk, &mreqn);
 		err = ip_mc_join_group(sk, &mreqn);
+#if IS_ENABLED(CONFIG_IPV6)
 	} else {
 	} else {
 		if (!ipv6_addr_is_multicast(&remote->ipv6))
 		if (!ipv6_addr_is_multicast(&remote->ipv6))
 			return 0;
 			return 0;
-		err = ipv6_sock_mc_join(sk, ub->ifindex, &remote->ipv6);
+		err = ipv6_stub->ipv6_sock_mc_join(sk, ub->ifindex,
+						   &remote->ipv6);
+#endif
 	}
 	}
 	return err;
 	return err;
 }
 }