If CONFIG_IPV6 is not set, building fails: net/bridge/netfilter/nf_conntrack_bridge.o: In function `nf_ct_bridge_pre': nf_conntrack_bridge.c:(.text+0x41c): undefined symbol `nf_ct_frag6_gather' net/bridge/netfilter/nf_conntrack_bridge.o: In function `nf_ct_bridge_post': nf_conntrack_bridge.c:(.text+0x820): undefined symbol `br_ip6_fragment' Reported-by: Hulk Robot <hulkci@xxxxxxxxxx> Reported-by: Randy Dunlap <rdunlap@xxxxxxxxxxxxx> Fixes: c9bb6165a16e ("netfilter: nf_conntrack_bridge: fix CONFIG_IPV6=y") Signed-off-by: YueHaibing <yuehaibing@xxxxxxxxxx> --- include/linux/netfilter_ipv6.h | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/include/linux/netfilter_ipv6.h b/include/linux/netfilter_ipv6.h index 3a3dc4b..0e1febc 100644 --- a/include/linux/netfilter_ipv6.h +++ b/include/linux/netfilter_ipv6.h @@ -108,8 +108,11 @@ static inline int nf_ipv6_br_defrag(struct net *net, struct sk_buff *skb, return 1; return v6_ops->br_defrag(net, skb, user); -#else +#endif +#if IS_BUILTIN(CONFIG_IPV6) return nf_ct_frag6_gather(net, skb, user); +#else + return 1; #endif } @@ -133,8 +136,11 @@ static inline int nf_br_ip6_fragment(struct net *net, struct sock *sk, return 1; return v6_ops->br_fragment(net, sk, skb, data, output); -#else +#endif +#if IS_BUILTIN(CONFIG_IPV6) return br_ip6_fragment(net, sk, skb, data, output); +#else + return 1; #endif } -- 2.7.4