Re: [PATCH] printk: drop in_nmi check from printk_safe_flush_on_panic()

From: Petr Mladek
Date: Wed May 30 2018 - 03:24:28 EST


On Wed 2018-05-30 16:03:50, Sergey Senozhatsky wrote:
> Drop the in_nmi() check from printk_safe_flush_on_panic()
> and attempt to re-init (IOW unlock) locked logbuf spinlock
> from panic CPU regardless of its context. Otherwise,
> theoretically, we can deadlock on logbuf trying to flush
> per-CPU buffers:
> a) Panic CPU is running in non-NMI context
> b) Panic CPU sends out shutdown IPI via reboot vector
> c) Panic CPU fails to stop all remote CPUs
> d) Panic CPU sends out shutdown IPI via NMI vector
> One of the CPUs that we bring down via NMI vector can hold
> logbuf spin lock (theoretically).
>
> Signed-off-by: Sergey Senozhatsky <sergey.senozhatsky@xxxxxxxxx>

Acked-by: Petr Mladek <pmladek@xxxxxxxx>

Just to be sure. IMHO, it is not worth nominating this patch for
stable. It is not a regression fix. I see it as a continuous
improving of the handling in various corner cases. And I see this
as a distant corner case.

Best Regards,
Petr