Re: [PATCH] powerpc/xmon: Fix disabling tracing while in xmon

2019-07-03 Thread Michael Ellerman
On Thu, 2019-06-27 at 09:59:40 UTC, "Naveen N. Rao" wrote:
> Commit ed49f7fd6438d ("powerpc/xmon: Disable tracing when entering
> xmon") added code to disable recording trace entries while in xmon. The
> commit introduced a variable 'tracing_enabled' to record if tracing was
> enabled on xmon entry, and used this to conditionally enable tracing
> during exit from xmon.
> 
> However, we are not checking the value of 'fromipi' variable in
> xmon_core() when setting 'tracing_enabled'. Due to this, when secondary
> cpus enter xmon, they will see tracing as being disabled already and
> tracing won't be re-enabled on exit. Fix the same.
> 
> Fixes: ed49f7fd6438d ("powerpc/xmon: Disable tracing when entering xmon")
> Signed-off-by: Naveen N. Rao 

Applied to powerpc next, thanks.

https://git.kernel.org/powerpc/c/aaf06665f7ea3ee9f9754e16c1a507a89f1de5b1

cheers


[PATCH] powerpc/xmon: Fix disabling tracing while in xmon

2019-06-27 Thread Naveen N. Rao
Commit ed49f7fd6438d ("powerpc/xmon: Disable tracing when entering
xmon") added code to disable recording trace entries while in xmon. The
commit introduced a variable 'tracing_enabled' to record if tracing was
enabled on xmon entry, and used this to conditionally enable tracing
during exit from xmon.

However, we are not checking the value of 'fromipi' variable in
xmon_core() when setting 'tracing_enabled'. Due to this, when secondary
cpus enter xmon, they will see tracing as being disabled already and
tracing won't be re-enabled on exit. Fix the same.

Fixes: ed49f7fd6438d ("powerpc/xmon: Disable tracing when entering xmon")
Signed-off-by: Naveen N. Rao 
---
 arch/powerpc/xmon/xmon.c | 6 --
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/arch/powerpc/xmon/xmon.c b/arch/powerpc/xmon/xmon.c
index d0620d762a5a..4a721fd62406 100644
--- a/arch/powerpc/xmon/xmon.c
+++ b/arch/powerpc/xmon/xmon.c
@@ -465,8 +465,10 @@ static int xmon_core(struct pt_regs *regs, int fromipi)
local_irq_save(flags);
hard_irq_disable();
 
-   tracing_enabled = tracing_is_on();
-   tracing_off();
+   if (!fromipi) {
+   tracing_enabled = tracing_is_on();
+   tracing_off();
+   }
 
bp = in_breakpoint_table(regs->nip, );
if (bp != NULL) {
-- 
2.22.0