On Thu, Sep 02, 2021 at 11:09:26AM +0200, Jean-Philippe Brucker wrote: > struct pt_regs is not exported to userspace on all archs. arm64 and s390 > export "user_pt_regs" instead, which causes build failure at the moment: > > progs/test_task_pt_regs.c:8:16: error: variable has incomplete type 'struct pt_regs' > struct pt_regs current_regs = {}; > > Use the multi-arch macros defined by tools/lib/bpf/bpf_tracing.h to copy > the pt_regs into a locally-defined struct. > > Copying the user_pt_regs struct on arm64 wouldn't work because the > struct is too large and the compiler complains about using too much > stack. > > Fixes: 576d47bb1a92 ("bpf: selftests: Add bpf_task_pt_regs() selftest") > Signed-off-by: Jean-Philippe Brucker <jean-philippe@xxxxxxxxxx> > --- > .../selftests/bpf/bpf_pt_regs_helpers.h | 30 +++++++++++++++++++ > .../selftests/bpf/prog_tests/task_pt_regs.c | 1 + > .../selftests/bpf/progs/test_task_pt_regs.c | 10 ++++--- > 3 files changed, 37 insertions(+), 4 deletions(-) > create mode 100644 tools/testing/selftests/bpf/bpf_pt_regs_helpers.h Acked-by: Daniel Xu <dxu@xxxxxxxxx> [...]