From c15b099ce0b9bde14e1391eb6d0faeeb8cd1570c Mon Sep 17 00:00:00 2001 From: Michael Ellerman Date: Thu, 25 Apr 2013 19:28:25 +0000 Subject: [PATCH] --- yaml --- r: 370815 b: refs/heads/master c: 33904054b40832908dfaeeece282f2f0ff636f14 h: refs/heads/master i: 370813: 2ddbf3ac07cba2285f6d45d8ff9e3b32bb7bb432 370811: 1da581209759a95593c58e44cd1dde6310c9cbf7 370807: 7f3433148d811b8ea1c4faf57da1a4906e615faf 370799: 3e5faec6f7a7bcf7e86fff2192cfb0f30b1e85ff 370783: b688319c56b1f70aa340c90a023ee7969ee9ab63 370751: 526e4451da1ff70dc8130c5c5817914ca212ea15 370687: 14862cc8ab636811fffef06b954b6b45fdda3e79 v: v3 --- [refs] | 2 +- trunk/arch/powerpc/perf/core-book3s.c | 9 +++++++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/[refs] b/[refs] index 1ccf941306c4..150c3a916f44 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 5682c460264149b258b82105f0eefcb9878aa1e7 +refs/heads/master: 33904054b40832908dfaeeece282f2f0ff636f14 diff --git a/trunk/arch/powerpc/perf/core-book3s.c b/trunk/arch/powerpc/perf/core-book3s.c index 2417fe2a5736..5d3000178736 100644 --- a/trunk/arch/powerpc/perf/core-book3s.c +++ b/trunk/arch/powerpc/perf/core-book3s.c @@ -89,6 +89,11 @@ static inline int siar_valid(struct pt_regs *regs) #endif /* CONFIG_PPC32 */ +static bool regs_use_siar(struct pt_regs *regs) +{ + return !!(regs->result & 1); +} + /* * Things that are specific to 64-bit implementations. */ @@ -162,7 +167,7 @@ static inline u32 perf_flags_from_msr(struct pt_regs *regs) static inline u32 perf_get_misc_flags(struct pt_regs *regs) { - unsigned long use_siar = regs->result; + bool use_siar = regs_use_siar(regs); if (!use_siar) return perf_flags_from_msr(regs); @@ -1425,7 +1430,7 @@ unsigned long perf_misc_flags(struct pt_regs *regs) */ unsigned long perf_instruction_pointer(struct pt_regs *regs) { - unsigned long use_siar = regs->result; + bool use_siar = regs_use_siar(regs); if (use_siar && siar_valid(regs)) return mfspr(SPRN_SIAR) + perf_ip_adjust(regs);