On (01/29/16 15:16), Sergey Senozhatsky wrote:
>
> http://marc.info/?l=linux-kernel&m=144976121529901
>
hm... I don't like that patch. ->reset() loop must be done outside
of zap_locks(). we can have a printk() recursion in CPU1, but console
driver lock may be owned by CPU2 in driver's handle_IRQ(), for example.
stealing its lock CPU1 is not really good. in my kernels I do this from
panic() path only, where I know that things are already bad.
panic()->console_panic_mode()->{for_each_console()->reset(),
zap_locks()}->console_trelock()->console_unlock().
-ss