提交 33904054 编写于 作者: M Michael Ellerman 提交者: Benjamin Herrenschmidt

powerpc/perf: Add an accessor for regs->result

Add an accessor for regs->result so we can use it to store more flags in
future.
Signed-off-by: NMichael Ellerman <michael@ellerman.id.au>
Acked-by: NPaul Mackerras <paulus@samba.org>
Signed-off-by: NBenjamin Herrenschmidt <benh@kernel.crashing.org>
上级 5682c460
...@@ -89,6 +89,11 @@ static inline int siar_valid(struct pt_regs *regs) ...@@ -89,6 +89,11 @@ static inline int siar_valid(struct pt_regs *regs)
#endif /* CONFIG_PPC32 */ #endif /* CONFIG_PPC32 */
static bool regs_use_siar(struct pt_regs *regs)
{
return !!(regs->result & 1);
}
/* /*
* Things that are specific to 64-bit implementations. * Things that are specific to 64-bit implementations.
*/ */
...@@ -162,7 +167,7 @@ static inline u32 perf_flags_from_msr(struct pt_regs *regs) ...@@ -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) 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) if (!use_siar)
return perf_flags_from_msr(regs); return perf_flags_from_msr(regs);
...@@ -1425,7 +1430,7 @@ unsigned long perf_misc_flags(struct pt_regs *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 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)) if (use_siar && siar_valid(regs))
return mfspr(SPRN_SIAR) + perf_ip_adjust(regs); return mfspr(SPRN_SIAR) + perf_ip_adjust(regs);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册