Netdev Archive on lore.kernel.org
help / color / mirror / Atom feed
* [PATCH net-next] bpf: fix pointer cast warning
@ 2021-07-21 21:19 Arnd Bergmann
  2021-07-21 21:45 ` Andrii Nakryiko
  0 siblings, 1 reply; 2+ messages in thread
From: Arnd Bergmann @ 2021-07-21 21:19 UTC (permalink / raw)
  To: Alexei Starovoitov, Daniel Borkmann, Andrii Nakryiko,
	Masami Hiramatsu, Jiri Olsa
  Cc: Arnd Bergmann, Steven Rostedt, Ingo Molnar, Martin KaFai Lau,
	Song Liu, Yonghong Song, John Fastabend, KP Singh,
	Florent Revest, Alan Maguire, netdev, bpf, linux-kernel

From: Arnd Bergmann <arnd@arndb.de>

kp->addr is a pointer, so it cannot be cast directly to a 'u64'
when it gets interpreted as an integer value:

kernel/trace/bpf_trace.c: In function '____bpf_get_func_ip_kprobe':
kernel/trace/bpf_trace.c:968:21: error: cast from pointer to integer of different size [-Werror=pointer-to-int-cast]
  968 |         return kp ? (u64) kp->addr : 0;

Use the uintptr_t type instead.

Fixes: 9ffd9f3ff719 ("bpf: Add bpf_get_func_ip helper for kprobe programs")
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
---
 kernel/trace/bpf_trace.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/kernel/trace/bpf_trace.c b/kernel/trace/bpf_trace.c
index 0de09f068697..a428d1ef0085 100644
--- a/kernel/trace/bpf_trace.c
+++ b/kernel/trace/bpf_trace.c
@@ -965,7 +965,7 @@ BPF_CALL_1(bpf_get_func_ip_kprobe, struct pt_regs *, regs)
 {
 	struct kprobe *kp = kprobe_running();
 
-	return kp ? (u64) kp->addr : 0;
+	return kp ? (uintptr_t)kp->addr : 0;
 }
 
 static const struct bpf_func_proto bpf_get_func_ip_proto_kprobe = {
-- 
2.29.2


^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: [PATCH net-next] bpf: fix pointer cast warning
  2021-07-21 21:19 [PATCH net-next] bpf: fix pointer cast warning Arnd Bergmann
@ 2021-07-21 21:45 ` Andrii Nakryiko
  0 siblings, 0 replies; 2+ messages in thread
From: Andrii Nakryiko @ 2021-07-21 21:45 UTC (permalink / raw)
  To: Arnd Bergmann
  Cc: Alexei Starovoitov, Daniel Borkmann, Andrii Nakryiko,
	Masami Hiramatsu, Jiri Olsa, Arnd Bergmann, Steven Rostedt,
	Ingo Molnar, Martin KaFai Lau, Song Liu, Yonghong Song,
	John Fastabend, KP Singh, Florent Revest, Alan Maguire,
	Networking, bpf, open list

On Wed, Jul 21, 2021 at 2:20 PM Arnd Bergmann <arnd@kernel.org> wrote:
>
> From: Arnd Bergmann <arnd@arndb.de>
>
> kp->addr is a pointer, so it cannot be cast directly to a 'u64'
> when it gets interpreted as an integer value:
>
> kernel/trace/bpf_trace.c: In function '____bpf_get_func_ip_kprobe':
> kernel/trace/bpf_trace.c:968:21: error: cast from pointer to integer of different size [-Werror=pointer-to-int-cast]
>   968 |         return kp ? (u64) kp->addr : 0;
>
> Use the uintptr_t type instead.
>
> Fixes: 9ffd9f3ff719 ("bpf: Add bpf_get_func_ip helper for kprobe programs")
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
> ---

I'll take this through the bpf-next tree, if no one objects. Thanks for the fix!


>  kernel/trace/bpf_trace.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/kernel/trace/bpf_trace.c b/kernel/trace/bpf_trace.c
> index 0de09f068697..a428d1ef0085 100644
> --- a/kernel/trace/bpf_trace.c
> +++ b/kernel/trace/bpf_trace.c
> @@ -965,7 +965,7 @@ BPF_CALL_1(bpf_get_func_ip_kprobe, struct pt_regs *, regs)
>  {
>         struct kprobe *kp = kprobe_running();
>
> -       return kp ? (u64) kp->addr : 0;
> +       return kp ? (uintptr_t)kp->addr : 0;
>  }
>
>  static const struct bpf_func_proto bpf_get_func_ip_proto_kprobe = {
> --
> 2.29.2
>

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2021-07-21 21:45 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-07-21 21:19 [PATCH net-next] bpf: fix pointer cast warning Arnd Bergmann
2021-07-21 21:45 ` Andrii Nakryiko

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).