• Arnd Bergmann's avatar
    bpf: avoid warning for wrong pointer cast · 266a0a79
    Arnd Bergmann authored
    Two new functions in bpf contain a cast from a 'u64' to a
    pointer. This works on 64-bit architectures but causes a warning
    on all 32-bit architectures:
    
    kernel/trace/bpf_trace.c: In function 'bpf_perf_event_output_tp':
    kernel/trace/bpf_trace.c:350:13: error: cast to pointer from integer of different size [-Werror=int-to-pointer-cast]
      u64 ctx = *(long *)r1;
    
    This changes the cast to first convert the u64 argument into a uintptr_t,
    which is guaranteed to be the same size as a pointer.
    Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
    Fixes: 9940d67c ("bpf: support bpf_get_stackid() and bpf_perf_event_output() in tracepoint programs")
    Acked-by: default avatarAlexei Starovoitov <ast@kernel.org>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    266a0a79
bpf_trace.c 10.5 KB