When CONFIG_IPV6 is disabled, the bridge netfilter code produces a link error: ERROR: "br_ip6_fragment" [net/bridge/netfilter/nf_conntrack_bridge.ko] undefined! ERROR: "nf_ct_frag6_gather" [net/bridge/netfilter/nf_conntrack_bridge.ko] undefined! The problem is that it assumes that whenever IPV6 is not a loadable module, we can call the functions direction. This is clearly not true when IPV6 is disabled. There are two other functions defined like this in linux/netfilter_ipv6.h, so change them all the same way.
Showing the changes to include/linux (1 of 1 file). Show all
Unified · Split
| @@ -75,8 +75,10 @@ static inline int nf_ipv6_chk_addr(struct net *net, const struct in6_addr *addr, · 74 unmodified lines | ||
| 75 | 75 | return 1; |
| 76 | 76 | |
| 77 | 77 | return v6_ops->chk_addr(net, addr, dev, strict); |
| 78 | −#else | |
| 78 | +#elif IS_BUILTIN(CONFIG_IPV6) | |
| 79 | 79 | return ipv6_chk_addr(net, addr, dev, strict); |
| 80 | +#else | |
| 81 | + return 1; | |
| 80 | 82 | #endif |
| 81 | 83 | } |
| 82 | 84 | |
| @@ -113,8 +115,10 @@ static inline int nf_ipv6_br_defrag(struct net *net, struct sk_buff *skb, · 30 unmodified lines | ||
| 113 | 115 | return 1; |
| 114 | 116 | |
| 115 | 117 | return v6_ops->br_defrag(net, skb, user); |
| 116 | −#else | |
| 118 | +#elif IS_BUILTIN(CONFIG_IPV6) | |
| 117 | 119 | return nf_ct_frag6_gather(net, skb, user); |
| 120 | +#else | |
| 121 | + return 1; | |
| 118 | 122 | #endif |
| 119 | 123 | } |
| 120 | 124 | |
| @@ -138,8 +142,10 @@ static inline int nf_br_ip6_fragment(struct net *net, struct sock *sk, · 17 unmodified lines | ||
| 138 | 142 | return 1; |
| 139 | 143 | |
| 140 | 144 | return v6_ops->br_fragment(net, sk, skb, data, output); |
| 141 | −#else | |
| 145 | +#elif IS_BUILTIN(CONFIG_IPV6) | |
| 142 | 146 | return br_ip6_fragment(net, sk, skb, data, output); |
| 147 | +#else | |
| 148 | + return 1; | |
| 143 | 149 | #endif |
| 144 | 150 | } |
| 145 | 151 | |
| @@ -154,8 +160,10 @@ static inline int nf_ip6_route_me_harder(struct net *net, struct sk_buff *skb) · 8 unmodified lines | ||
| 154 | 160 | return -EHOSTUNREACH; |
| 155 | 161 | |
| 156 | 162 | return v6_ops->route_me_harder(net, skb); |
| 157 | −#else | |
| 163 | +#elif IS_BUILTIN(CONFIG_IPV6) | |
| 158 | 164 | return ip6_route_me_harder(net, skb); |
| 165 | +#else | |
| 166 | + return -EHOSTUNREACH; | |
| 159 | 167 | #endif |
| 160 | 168 | } |
| 161 | 169 | |