Re: [BUG] Suspend failure with nbcon + pm_debug_messages (Linux 6.18-rc4)

From: Petr Mladek

Date: Wed Nov 05 2025 - 02:30:43 EST


On Wed 2025-11-05 00:25:55, John Ogness wrote:
> Hi Sherry,
>
> On 2025-11-04, Sherry Sun <sherry.sun@xxxxxxx> wrote:
> >> Thanks for confirming the fix. I will make an official post on LKML
> >> with the patch today. Since the i.MX nbcon-driver is already
> >> mainline, I will CC stable. I will CC you as well.
> >
> > I'll keep an eye on any fixes you send later and verify them if
> > necessary. Hope this fix can be applied to the mainline and the stable
> > tree ASAP.
>
> Even with this patch [1] I am able to reproduce the problem on one of my
> test boards. I am using the following extra boot arguments:
>
> no_console_suspend loglevel=8 initcall_debug
>
> And then:
>
> # echo 1 > /sys/power/pm_debug_messages
> # echo mem > /sys/power/state
>
> This generates a lot of output and leads to the same suspend
> failure. This may be due to the out-of-tree nbcon-8250 driver I am
> using, which introduces extra irq_work usage within the driver.

Great catch!

> Could you please try the above boot arguments with your i.MX board?
>
> I am wondering if blocking the queueing of irq_work during suspend
> should be generally implemented rather than just printk avoiding it. It
> also seems to only be a problem for ARM32 so perhaps it needs to be
> addressed at the architecture level.

IMHO, we could not _quietly_ block irq_work during the suspend a
generic way. We would need to warn about it so that the callers are
aware of it. Then the callers would need to explicitly block it
to avoid the warning.

I want to say that explicitly blocking the irq_work in printk() looks
like the right way to go. I think that it would be needed anyway.

Best Regards,
Petr