]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
tty: serial: 8250: Fix another runtime PM usage counter underflow
authorIlpo Järvinen <ilpo.jarvinen@linux.intel.com>
Tue, 10 Dec 2024 17:01:20 +0000 (19:01 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 23 Dec 2024 18:01:18 +0000 (19:01 +0100)
The commit f9b11229b79c ("serial: 8250: Fix PM usage_count for console
handover") fixed one runtime PM usage counter balance problem that
occurs because .dev is not set during univ8250 setup preventing call to
pm_runtime_get_sync(). Later, univ8250_console_exit() will trigger the
runtime PM usage counter underflow as .dev is already set at that time.

Call pm_runtime_get_sync() to balance the RPM usage counter also in
serial8250_register_8250_port() before trying to add the port.

Reported-by: Borislav Petkov (AMD) <bp@alien8.de>
Fixes: bedb404e91bb ("serial: 8250_port: Don't use power management for kernel console")
Cc: stable <stable@kernel.org>
Tested-by: Borislav Petkov (AMD) <bp@alien8.de>
Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
Link: https://lore.kernel.org/r/20241210170120.2231-1-ilpo.jarvinen@linux.intel.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/tty/serial/8250/8250_core.c

index 5f9f06911795cc185907965effc2a0fc6e99017c..68baf75bdadc426826be2dc53dc72d3e11f2085e 100644 (file)
@@ -812,6 +812,9 @@ int serial8250_register_8250_port(const struct uart_8250_port *up)
                        uart->dl_write = up->dl_write;
 
                if (uart->port.type != PORT_8250_CIR) {
+                       if (uart_console_registered(&uart->port))
+                               pm_runtime_get_sync(uart->port.dev);
+
                        if (serial8250_isa_config != NULL)
                                serial8250_isa_config(0, &uart->port,
                                                &uart->capabilities);