Re: [PATCH v12 1/1] serial: core: Start managing serial controllers to enable runtime PM

From: Tony Lindgren
Date: Thu Jun 01 2023 - 06:44:39 EST


Hi,

* Steven Price <steven.price@xxxxxxx> [230601 10:04]:
> I haven't studied this change in detail, but I assume the bug is that
> serial_base_port_device_remove() shouldn't be dropping port_mutex. The
> below hack gets my board booting again.

You're right. I wonder how I managed to miss that.. Care to post a proper
fix for this or do you want me to post it?

> Thanks,
>
> Steve
>
> Hack fix:
> ----8<----
> diff --git a/drivers/tty/serial/serial_core.c b/drivers/tty/serial/serial_core.c
> index 29bd5ede0b25..044e4853341a 100644
> --- a/drivers/tty/serial/serial_core.c
> +++ b/drivers/tty/serial/serial_core.c
> @@ -3234,8 +3234,7 @@ static void serial_core_remove_one_port(struct uart_driver *drv,
> wait_event(state->remove_wait, !atomic_read(&state->refcount));
> state->uart_port = NULL;
> mutex_unlock(&port->mutex);
> -out:
> - mutex_unlock(&port_mutex);
> +out:;
> }

Seems you can remove out here and just do a return earlier instead of goto.

Regards,

Tony