From: Andy Shevchenko Date: Thu, 6 Jun 2024 18:48:41 +0000 (+0300) Subject: serial: 8250_platform: Explicitly show we initialise ISA ports only once X-Git-Tag: v6.11-rc1~103^2~7 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=efa6b0a1d66e189fa13e75f704dd8ee5948a3cd3;p=thirdparty%2Fkernel%2Flinux.git serial: 8250_platform: Explicitly show we initialise ISA ports only once serial8250_isa_init_ports() uses home grown approach to make itself a singleton. Instead, explicitly show that we initialise ISA ports once by providing a helper function which calls the original function via DO_ONCE() macro. Signed-off-by: Andy Shevchenko Link: https://lore.kernel.org/r/20240606184841.3102545-1-andriy.shevchenko@linux.intel.com Signed-off-by: Greg Kroah-Hartman --- diff --git a/drivers/tty/serial/8250/8250_platform.c b/drivers/tty/serial/8250/8250_platform.c index ded985182e04a..5817c1d723148 100644 --- a/drivers/tty/serial/8250/8250_platform.c +++ b/drivers/tty/serial/8250/8250_platform.c @@ -9,6 +9,7 @@ #include #include #include +#include #include #include @@ -53,15 +54,10 @@ void serial8250_set_isa_configurator(serial8250_isa_config_fn v) } EXPORT_SYMBOL(serial8250_set_isa_configurator); -void __init serial8250_isa_init_ports(void) +static void __init __serial8250_isa_init_ports(void) { - static int first = 1; int i, irqflag = 0; - if (!first) - return; - first = 0; - if (nr_uarts > UART_NR) nr_uarts = UART_NR; @@ -102,6 +98,11 @@ void __init serial8250_isa_init_ports(void) } } +void __init serial8250_isa_init_ports(void) +{ + DO_ONCE(__serial8250_isa_init_ports); +} + /* * Register a set of serial devices attached to a platform device. The * list is terminated with a zero flags entry, which means we expect