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

From: Petr Mladek
Date: Thu May 31 2018 - 10:05:33 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>

I have pushed this into printk.git, branch for-4.18.

Best Regards,
Petr