Messages in this thread | | | Date | Mon, 22 Jan 2018 19:28:57 +0900 | From | Sergey Senozhatsky <> | Subject | Re: [PATCH v5 0/2] printk: Console owner and waiter logic cleanup |
| |
On (01/22/18 17:56), Sergey Senozhatsky wrote: [..] > Assume the following,
But more importantly we are missing another huge thing - console_unlock().
Suppose:
console_lock(); << preemption >> printk printk .. printk console_unlock() for (;;) { call_console_drivers() dump_stack queue IRQ work
IRQ work >> flush_printk_safe printk_deferred() ... printk_deferred() << iret }
This should explode: sleepable console_unlock() may reschedule, printk_safe flush bypasses recursion checks.
-ss
| |