perf tools: Fix compile error on sample->user_regs
authorNamhyung Kim <namhyung@kernel.org>
Fri, 14 Feb 2025 19:16:41 +0000 (11:16 -0800)
committerNamhyung Kim <namhyung@kernel.org>
Fri, 14 Feb 2025 20:33:41 +0000 (12:33 -0800)
It's recently changed to allocate dynamically but misses to update some
arch-dependent codes to use perf_sample__user_regs().

Fixes: dc6d2bc2d893a878 ("perf sample: Make user_regs and intr_regs optional")
Reported-by: Stephen Rothwell <sfr@canb.auug.org.au>
Reviewed-by: Ian Rogers <irogers@google.com>
Link: https://lore.kernel.org/r/20250214191641.756664-1-namhyung@kernel.org
Signed-off-by: Namhyung Kim <namhyung@kernel.org>
tools/perf/arch/arm/tests/dwarf-unwind.c
tools/perf/arch/arm/util/unwind-libdw.c
tools/perf/arch/csky/util/unwind-libdw.c
tools/perf/arch/loongarch/util/unwind-libdw.c
tools/perf/arch/powerpc/tests/dwarf-unwind.c
tools/perf/arch/powerpc/util/unwind-libdw.c
tools/perf/arch/riscv/util/unwind-libdw.c
tools/perf/arch/s390/util/unwind-libdw.c

index 9bc304cb7762b5d1b75477d5a9f031509359c078..f421910e0709715230777ce528d89ada1abacf72 100644 (file)
@@ -45,7 +45,7 @@ static int sample_ustack(struct perf_sample *sample,
 int test__arch_unwind_sample(struct perf_sample *sample,
                             struct thread *thread)
 {
-       struct regs_dump *regs = &sample->user_regs;
+       struct regs_dump *regs = perf_sample__user_regs(sample);
        u64 *buf;
 
        buf = calloc(1, sizeof(u64) * PERF_REGS_MAX);
index 4e02cef461e3af34b02309110857da15ab9ebd90..fbb643f224ec4b27ce9d67051fe0bc4ad555b05e 100644 (file)
@@ -8,7 +8,7 @@
 bool libdw__arch_set_initial_registers(Dwfl_Thread *thread, void *arg)
 {
        struct unwind_info *ui = arg;
-       struct regs_dump *user_regs = &ui->sample->user_regs;
+       struct regs_dump *user_regs = perf_sample__user_regs(ui->sample);
        Dwarf_Word dwarf_regs[PERF_REG_ARM_MAX];
 
 #define REG(r) ({                                              \
index 79df4374ab18dc365d968ad56adfed8ce2ee3251..b20b1569783d7e982e91b1b40120d29ccf2f01d1 100644 (file)
@@ -10,7 +10,7 @@
 bool libdw__arch_set_initial_registers(Dwfl_Thread *thread, void *arg)
 {
        struct unwind_info *ui = arg;
-       struct regs_dump *user_regs = &ui->sample->user_regs;
+       struct regs_dump *user_regs = perf_sample__user_regs(ui->sample);
        Dwarf_Word dwarf_regs[PERF_REG_CSKY_MAX];
 
 #define REG(r) ({                                              \
index 7b3b9a4b21f8f4823bb549bd0a6db102278784e2..60b1144bedd5f325e1512eeab05c29a1e8de2b03 100644 (file)
@@ -10,7 +10,7 @@
 bool libdw__arch_set_initial_registers(Dwfl_Thread *thread, void *arg)
 {
        struct unwind_info *ui = arg;
-       struct regs_dump *user_regs = &ui->sample->user_regs;
+       struct regs_dump *user_regs = perf_sample__user_regs(ui->sample);
        Dwarf_Word dwarf_regs[PERF_REG_LOONGARCH_MAX];
 
 #define REG(r) ({                                                      \
index 5ecf82893b84d5c0af3c1e195d78ee4eb4c62ca2..66af884baa660389e51794b70e7e51de970ba1b3 100644 (file)
@@ -45,7 +45,7 @@ static int sample_ustack(struct perf_sample *sample,
 int test__arch_unwind_sample(struct perf_sample *sample,
                             struct thread *thread)
 {
-       struct regs_dump *regs = &sample->user_regs;
+       struct regs_dump *regs = perf_sample__user_regs(sample);
        u64 *buf;
 
        buf = calloc(1, sizeof(u64) * PERF_REGS_MAX);
index e9a5a8bb67d9186eb5a6afe47ac25c052b8ed050..82d0c28ae3459ecdb0039cac1f534420d142739b 100644 (file)
@@ -16,7 +16,7 @@ static const int special_regs[3][2] = {
 bool libdw__arch_set_initial_registers(Dwfl_Thread *thread, void *arg)
 {
        struct unwind_info *ui = arg;
-       struct regs_dump *user_regs = &ui->sample->user_regs;
+       struct regs_dump *user_regs = perf_sample__user_regs(ui->sample);
        Dwarf_Word dwarf_regs[32], dwarf_nip;
        size_t i;
 
index 5c98010d8b59777f4ef45bc2ac106907191ba8c9..dc1476e16321736de897ad53a00fbc813bd706db 100644 (file)
@@ -10,7 +10,7 @@
 bool libdw__arch_set_initial_registers(Dwfl_Thread *thread, void *arg)
 {
        struct unwind_info *ui = arg;
-       struct regs_dump *user_regs = &ui->sample->user_regs;
+       struct regs_dump *user_regs = perf_sample__user_regs(ui->sample);
        Dwarf_Word dwarf_regs[32];
 
 #define REG(r) ({                                              \
index f50fb6dbb35c5dc6f38e45d4e1735f1c073e7592..c27c7a0d1076c890c35ba19543932c4ed5ac9c2a 100644 (file)
@@ -11,7 +11,7 @@
 bool libdw__arch_set_initial_registers(Dwfl_Thread *thread, void *arg)
 {
        struct unwind_info *ui = arg;
-       struct regs_dump *user_regs = &ui->sample->user_regs;
+       struct regs_dump *user_regs = perf_sample__user_regs(ui->sample);
        Dwarf_Word dwarf_regs[ARRAY_SIZE(s390_dwarf_regs)];
 
 #define REG(r) ({                                              \