Re: [PATCH printk v1] printk: Avoid irq_work for printk_deferred() on suspend
From: Petr Mladek
Date: Fri Nov 21 2025 - 10:55:13 EST
On Fri 2025-11-21 11:26:00, John Ogness wrote:
> With commit ("printk: Avoid scheduling irq_work on suspend") the
> implementation of printk_get_console_flush_type() was modified to
> avoid offloading when irq_work should be blocked during suspend.
> Since printk uses the returned flush type to determine what
> flushing methods are used, this was thought to be sufficient for
> avoiding irq_work usage during the suspend phase.
>
> However, vprintk_emit() implements a hack to support
> printk_deferred(). In this hack, the returned flush type is
> adjusted to make sure no legacy direct printing occurs when
> printk_deferred() was used.
>
> Because of this hack, the legacy offloading flushing method can
> still be used, causing irq_work to be queued when it should not
> be.
>
> Adjust the vprintk_emit() hack to also consider
> @console_irqwork_blocked so that legacy offloading will not be
> chosen when irq_work should be blocked.
>
> Link: https://lore.kernel.org/lkml/87fra90xv4.fsf@xxxxxxxxxxxxxxxxxxxxx
> Signed-off-by: John Ogness <john.ogness@xxxxxxxxxxxxx>
Thanks for catching and fixing the problem:
Reviewed-by: Petr Mladek <pmladek@xxxxxxxx>
Best Regards,
Petr