Re: [PATCH] powerpc/xmon: Fix an unexpected xmon onoff state change

From: Michael Ellerman
Date: Thu Feb 16 2017 - 00:09:42 EST


Pan Xinhui <xinhui.pan@xxxxxxxxxxxxxxxxxx> writes:

> Once xmon is triggered by sysrq-x, it is enabled always afterwards even
> if it is disabled during boot. This will cause a system reset interrut
> fail to dump. So keep xmon in its original state after exit.
>
> Signed-off-by: Pan Xinhui <xinhui.pan@xxxxxxxxxxxxxxxxxx>
> ---
> arch/powerpc/xmon/xmon.c | 5 ++++-
> 1 file changed, 4 insertions(+), 1 deletion(-)
>
> diff --git a/arch/powerpc/xmon/xmon.c b/arch/powerpc/xmon/xmon.c
> index 9c0e17c..721212f 100644
> --- a/arch/powerpc/xmon/xmon.c
> +++ b/arch/powerpc/xmon/xmon.c
> @@ -76,6 +76,7 @@ static int xmon_gate;
> #endif /* CONFIG_SMP */
>
> static unsigned long in_xmon __read_mostly = 0;
> +static int xmon_off = 0;
>
> static unsigned long adrs;
> static int size = 1;
> @@ -3250,6 +3251,8 @@ static void sysrq_handle_xmon(int key)
> /* ensure xmon is enabled */
> xmon_init(1);
> debugger(get_irq_regs());
> + if (xmon_off)
> + xmon_init(0);
> }

I don't think this is right.

xmon_off is only true if you boot with xmon=off on the command line.

So if you boot with CONFIG_XMON_DEFAULT=n, and nothing on the command
line, then enter xmon via sysrq, then exit, xmon will still be enabled.

cheers