* [PATCH net-next 1/2] net: add EXPORT_INDIRECT_CALLABLE wrapper
@ 2021-02-04 18:18 Brian Vazquez
2021-02-04 18:18 ` [PATCH net-next 2/2] net: fix building errors on powerpc when CONFIG_RETPOLINE is not set Brian Vazquez
2021-02-05 2:30 ` [PATCH net-next 1/2] net: add EXPORT_INDIRECT_CALLABLE wrapper patchwork-bot+netdevbpf
0 siblings, 2 replies; 4+ messages in thread
From: Brian Vazquez @ 2021-02-04 18:18 UTC (permalink / raw)
To: Brian Vazquez, Brian Vazquez, Eric Dumazet, David S . Miller
Cc: linux-kernel, netdev, Stephen Rothwell
When a static function is annotated with INDIRECT_CALLABLE_SCOPE and
CONFIG_RETPOLINE is set, the static keyword is removed. Sometimes the
function needs to be exported but EXPORT_SYMBOL can't be used because if
CONFIG_RETPOLINE is not set, we will attempt to export a static symbol.
This patch introduces a new indirect call wrapper:
EXPORT_INDIRECT_CALLABLE. This basically does EXPORT_SYMBOL when
CONFIG_RETPOLINE is set, but does nothing when it's not.
Reported-by: Stephen Rothwell <sfr@canb.auug.org.au>
Signed-off-by: Brian Vazquez <brianvv@google.com>
---
include/linux/indirect_call_wrapper.h | 2 ++
1 file changed, 2 insertions(+)
diff --git a/include/linux/indirect_call_wrapper.h b/include/linux/indirect_call_wrapper.h
index 54c02c84906a..a8345c8a613d 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 EXPORT_INDIRECT_CALLABLE(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 EXPORT_INDIRECT_CALLABLE(f)
#endif
/*
--
2.30.0.365.g02bc693789-goog
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [PATCH net-next 2/2] net: fix building errors on powerpc when CONFIG_RETPOLINE is not set
2021-02-04 18:18 [PATCH net-next 1/2] net: add EXPORT_INDIRECT_CALLABLE wrapper Brian Vazquez
@ 2021-02-04 18:18 ` Brian Vazquez
2021-02-05 2:30 ` [PATCH net-next 1/2] net: add EXPORT_INDIRECT_CALLABLE wrapper patchwork-bot+netdevbpf
1 sibling, 0 replies; 4+ messages in thread
From: Brian Vazquez @ 2021-02-04 18:18 UTC (permalink / raw)
To: Brian Vazquez, Brian Vazquez, Eric Dumazet, David S . Miller
Cc: linux-kernel, netdev, Stephen Rothwell
This commit fixes the errores reported when building for powerpc:
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
Fixes: f67fbeaebdc0 ("net: use indirect call helpers for dst_mtu")
Fixes: bbd807dfbf20 ("net: indirect call helpers for ipv4/ipv6 dst_check functions")
Reported-by: Stephen Rothwell <sfr@canb.auug.org.au>
Signed-off-by: Brian Vazquez <brianvv@google.com>
---
net/ipv4/route.c | 4 ++--
net/ipv6/route.c | 4 ++--
2 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/net/ipv4/route.c b/net/ipv4/route.c
index 9e6537709794..be31e2446470 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);
+EXPORT_INDIRECT_CALLABLE(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);
+EXPORT_INDIRECT_CALLABLE(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 8d9e053dc071..0d1784b0d65d 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);
+EXPORT_INDIRECT_CALLABLE(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);
+EXPORT_INDIRECT_CALLABLE(ip6_mtu);
/* MTU selection:
* 1. mtu on route is locked - use it
--
2.30.0.365.g02bc693789-goog
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH net-next 1/2] net: add EXPORT_INDIRECT_CALLABLE wrapper
2021-02-04 18:18 [PATCH net-next 1/2] net: add EXPORT_INDIRECT_CALLABLE wrapper Brian Vazquez
2021-02-04 18:18 ` [PATCH net-next 2/2] net: fix building errors on powerpc when CONFIG_RETPOLINE is not set Brian Vazquez
@ 2021-02-05 2:30 ` patchwork-bot+netdevbpf
1 sibling, 0 replies; 4+ messages in thread
From: patchwork-bot+netdevbpf @ 2021-02-05 2:30 UTC (permalink / raw)
To: Brian Vazquez; +Cc: brianvv.kernel, edumazet, davem, linux-kernel, netdev, sfr
Hello:
This series was applied to netdev/net-next.git (refs/heads/master):
On Thu, 4 Feb 2021 18:18:38 +0000 you wrote:
> When a static function is annotated with INDIRECT_CALLABLE_SCOPE and
> CONFIG_RETPOLINE is set, the static keyword is removed. Sometimes the
> function needs to be exported but EXPORT_SYMBOL can't be used because if
> CONFIG_RETPOLINE is not set, we will attempt to export a static symbol.
>
> This patch introduces a new indirect call wrapper:
> EXPORT_INDIRECT_CALLABLE. This basically does EXPORT_SYMBOL when
> CONFIG_RETPOLINE is set, but does nothing when it's not.
>
> [...]
Here is the summary with links:
- [net-next,1/2] net: add EXPORT_INDIRECT_CALLABLE wrapper
https://git.kernel.org/netdev/net-next/c/0053859496ba
- [net-next,2/2] net: fix building errors on powerpc when CONFIG_RETPOLINE is not set
https://git.kernel.org/netdev/net-next/c/9c97921a51a0
You are awesome, thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html
^ permalink raw reply [flat|nested] 4+ messages in thread
* [PATCH net-next 1/2] net: add EXPORT_INDIRECT_CALLABLE wrapper
@ 2021-02-04 17:19 Brian Vazquez
2021-02-04 17:19 ` [PATCH net-next 2/2] net: fix building errors on powerpc when CONFIG_RETPOLINE is not set Brian Vazquez
0 siblings, 1 reply; 4+ messages in thread
From: Brian Vazquez @ 2021-02-04 17:19 UTC (permalink / raw)
To: Brian Vazquez, Brian Vazquez, Eric Dumazet, David S . Miller
Cc: linux-kernel, netdev, Stephen Rothwell
When a static function is annotated with INDIRECT_CALLABLE_SCOPE and
CONFIG_RETPOLINE is set, the static keyword is removed. Sometimes the
function needs to be exported but EXPORT_SYMBOL can't be used because if
CONFIG_RETPOLINE is not set, we will attempt to export a static symbol.
This patch introduces a new indirect call wrapper:
EXPORT_INDIRECT_CALLABLE. This basically does EXPORT_SYMBOL when
CONFIG_RETPOLINE is set, but does nothing when it's not.
Reported-by: Stephen Rothwell <sfr@canb.auug.org.au>
Signed-off-by: Brian Vazquez <brianvv@google.com>
---
include/linux/indirect_call_wrapper.h | 2 ++
1 file changed, 2 insertions(+)
diff --git a/include/linux/indirect_call_wrapper.h b/include/linux/indirect_call_wrapper.h
index 54c02c84906a..a8345c8a613d 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 EXPORT_INDIRECT_CALLABLE(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 EXPORT_INDIRECT_CALLABLE(f)
#endif
/*
--
2.30.0.365.g02bc693789-goog
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [PATCH net-next 2/2] net: fix building errors on powerpc when CONFIG_RETPOLINE is not set
2021-02-04 17:19 Brian Vazquez
@ 2021-02-04 17:19 ` Brian Vazquez
0 siblings, 0 replies; 4+ messages in thread
From: Brian Vazquez @ 2021-02-04 17:19 UTC (permalink / raw)
To: Brian Vazquez, Brian Vazquez, Eric Dumazet, David S . Miller
Cc: linux-kernel, netdev, Stephen Rothwell
This commit fixes the errores reported when building for powerpc:
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
Fixes: f67fbeaebdc0 ("net: use indirect call helpers for dst_mtu")
Fixes: bbd807dfbf20 ("net: indirect call helpers for ipv4/ipv6 dst_check functions")
Reported-by: Stephen Rothwell <sfr@canb.auug.org.au>
Signed-off-by: Brian Vazquez <brianvv@google.com>
---
net/ipv4/route.c | 4 ++--
net/ipv6/route.c | 4 ++--
2 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/net/ipv4/route.c b/net/ipv4/route.c
index 9e6537709794..be31e2446470 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);
+EXPORT_INDIRECT_CALLABLE(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);
+EXPORT_INDIRECT_CALLABLE(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 8d9e053dc071..0d1784b0d65d 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);
+EXPORT_INDIRECT_CALLABLE(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);
+EXPORT_INDIRECT_CALLABLE(ip6_mtu);
/* MTU selection:
* 1. mtu on route is locked - use it
--
2.30.0.365.g02bc693789-goog
^ permalink raw reply related [flat|nested] 4+ messages in thread
end of thread, other threads:[~2021-02-05 2:31 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-02-04 18:18 [PATCH net-next 1/2] net: add EXPORT_INDIRECT_CALLABLE wrapper Brian Vazquez
2021-02-04 18:18 ` [PATCH net-next 2/2] net: fix building errors on powerpc when CONFIG_RETPOLINE is not set Brian Vazquez
2021-02-05 2:30 ` [PATCH net-next 1/2] net: add EXPORT_INDIRECT_CALLABLE wrapper patchwork-bot+netdevbpf
-- strict thread matches above, loose matches on Subject: below --
2021-02-04 17:19 Brian Vazquez
2021-02-04 17:19 ` [PATCH net-next 2/2] net: fix building errors on powerpc when CONFIG_RETPOLINE is not set Brian Vazquez
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.