Hi Stephen, thanks for the report. I'm having trouble trying to compile for ppc, but I believe this should fix the problem, could you test this patch, please? Thanks! diff --git a/include/linux/indirect_call_wrapper.h b/include/linux/indirect_call_wrapper.h index 54c02c84906a..077f96be65c6 100644 --- a/include/linux/indirect_call_wrapper.h +++ b/include/linux/indirect_call_wrapper.h @@ -36,6 +36,7 @@ #define INDIRECT_CALLABLE_DECLARE(f) f #define INDIRECT_CALLABLE_SCOPE +#define INDIRECT_CALLABLE_EXPORT(f) EXPORT_SYMBOL(f) #else #define INDIRECT_CALL_1(f, f1, ...) f(__VA_ARGS__) @@ -44,6 +45,7 @@ #define INDIRECT_CALL_4(f, f4, f3, f2, f1, ...) f(__VA_ARGS__) #define INDIRECT_CALLABLE_DECLARE(f) #define INDIRECT_CALLABLE_SCOPE static +#define INDIRECT_CALLABLE_EXPORT(f) #endif /* diff --git a/net/ipv4/route.c b/net/ipv4/route.c index 9e6537709794..9dd8ff3887b7 100644 --- a/net/ipv4/route.c +++ b/net/ipv4/route.c @@ -1206,7 +1206,7 @@ INDIRECT_CALLABLE_SCOPE struct dst_entry *ipv4_dst_check(struct dst_entry *dst, return NULL; return dst; } -EXPORT_SYMBOL(ipv4_dst_check); +INDIRECT_CALLABLE_EXPORT(ipv4_dst_check); static void ipv4_send_dest_unreach(struct sk_buff *skb) { @@ -1337,7 +1337,7 @@ INDIRECT_CALLABLE_SCOPE unsigned int ipv4_mtu(const struct dst_entry *dst) return mtu - lwtunnel_headroom(dst->lwtstate, mtu); } -EXPORT_SYMBOL(ipv4_mtu); +INDIRECT_CALLABLE_EXPORT(ipv4_mtu); static void ip_del_fnhe(struct fib_nh_common *nhc, __be32 daddr) { diff --git a/net/ipv6/route.c b/net/ipv6/route.c index f447f82e6819..75d6a0db1fa6 100644 --- a/net/ipv6/route.c +++ b/net/ipv6/route.c @@ -2644,7 +2644,7 @@ INDIRECT_CALLABLE_SCOPE struct dst_entry *ip6_dst_check(struct dst_entry *dst, return dst_ret; } -EXPORT_SYMBOL(ip6_dst_check); +INDIRECT_CALLABLE_EXPORT(ip6_dst_check); static struct dst_entry *ip6_negative_advice(struct dst_entry *dst) { @@ -3115,7 +3115,7 @@ INDIRECT_CALLABLE_SCOPE unsigned int ip6_mtu(const struct dst_entry *dst) return mtu - lwtunnel_headroom(dst->lwtstate, mtu); } -EXPORT_SYMBOL(ip6_mtu); +INDIRECT_CALLABLE_EXPORT(ip6_mtu); /* MTU selection: * 1. mtu on route is locked - use it On Wed, Feb 3, 2021 at 5:33 PM Stephen Rothwell <sfr@xxxxxxxxxxxxxxxx> wrote: > > Hi all, > > After merging the net-next tree, today's linux-next build (powerpc > ppc64_defconfig) failed like this: > > ERROR: modpost: "ip6_dst_check" [vmlinux] is a static EXPORT_SYMBOL > ERROR: modpost: "ipv4_dst_check" [vmlinux] is a static EXPORT_SYMBOL > ERROR: modpost: "ipv4_mtu" [vmlinux] is a static EXPORT_SYMBOL > ERROR: modpost: "ip6_mtu" [vmlinux] is a static EXPORT_SYMBOL > > Caused by commits > > f67fbeaebdc0 ("net: use indirect call helpers for dst_mtu") > bbd807dfbf20 ("net: indirect call helpers for ipv4/ipv6 dst_check functions") > > I have used the net-next tree from next-20210203 fot today. > > -- > Cheers, > Stephen Rothwell