Re: [PATCH v6 1/3] serial: 8250: fix deadlock in serial8250_register_ports()

From: Andy Shevchenko

Date: Wed Sep 30 2026 - 06:04:13 EST


On Wed, Sep 30, 2026 at 07:48:48AM +0000, Hui Peng wrote:
> In serial8250_register_ports(), mutex_lock(&hash_mutex) is acquired while
> holding spinlock_t serial_port_lock during IRQ chain registration:
>
> spin_lock_irqsave(&serial_port_lock, flags);
> mutex_lock(&hash_mutex);
>
> Acquiring a sleeping mutex while holding a spinlock causes a
> sleeping-while-atomic bug and potential deadlock.
>
> Replace mutex_lock(&hash_mutex) with spin_lock_irqsave() in
> serial8250_register_ports().

> Cc: stable@xxxxxxxxxxxxxxx
> Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@xxxxxxxxxxxxxxx>
> Assisted-by: LLM
> Signed-off-by: Hui Peng <benquike@xxxxxxxxx>

...

> for (i = 0; i < nr; i++) {
> - up = &serial8250_ports[i];
> + up = &serial8250_ports[i];
> up->port.dev = dev;
> }

What the heck is this?! Please, stop use AI blindly, turn on your brains.

--
With Best Regards,
Andy Shevchenko