summaryrefslogtreecommitdiffstats
path: root/arch/powerpc/perf
diff options
context:
space:
mode:
authorMichael Ellerman <mpe@ellerman.id.au>2019-02-19 09:56:26 +0100
committerMichael Ellerman <mpe@ellerman.id.au>2019-02-19 09:56:26 +0100
commit637cfeb9f99ca097747139a5419bc23e0b885655 (patch)
tree283fbe502c16ff79dfe93e10b565fc5c023be744 /arch/powerpc/perf
parentpowerpc/powernv: Escalate reset when IODA reset fails (diff)
parentpowerpc/64s: Fix possible corruption on big endian due to pgd/pud_present() (diff)
downloadlinux-637cfeb9f99ca097747139a5419bc23e0b885655.tar.xz
linux-637cfeb9f99ca097747139a5419bc23e0b885655.zip
Merge branch 'fixes' into next
There's a few important fixes in our fixes branch, in particular the pgd/pud_present() one, so merge it now.
Diffstat (limited to 'arch/powerpc/perf')
-rw-r--r--arch/powerpc/perf/perf_regs.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/arch/powerpc/perf/perf_regs.c b/arch/powerpc/perf/perf_regs.c
index 5c36b3a8d47a..3349f3f8fe84 100644
--- a/arch/powerpc/perf/perf_regs.c
+++ b/arch/powerpc/perf/perf_regs.c
@@ -70,6 +70,7 @@ static unsigned int pt_regs_offset[PERF_REG_POWERPC_MAX] = {
PT_REGS_OFFSET(PERF_REG_POWERPC_DAR, dar),
PT_REGS_OFFSET(PERF_REG_POWERPC_DSISR, dsisr),
PT_REGS_OFFSET(PERF_REG_POWERPC_SIER, dar),
+ PT_REGS_OFFSET(PERF_REG_POWERPC_MMCRA, dsisr),
};
u64 perf_reg_value(struct pt_regs *regs, int idx)
@@ -83,6 +84,11 @@ u64 perf_reg_value(struct pt_regs *regs, int idx)
!is_sier_available()))
return 0;
+ if (idx == PERF_REG_POWERPC_MMCRA &&
+ (IS_ENABLED(CONFIG_FSL_EMB_PERF_EVENT) ||
+ IS_ENABLED(CONFIG_PPC32)))
+ return 0;
+
return regs_get_register(regs, pt_regs_offset[idx]);
}