When console_register() fails, the dynamically allocated linux_earlycon_name string was not freed, leading to a memory leak. Add a free_const() call on the error path to release it.
Also simplify the success path by returning 0 directly after successful registration, making the code more readable. Signed-off-by: Alexander Shiyan <[email protected]> --- drivers/serial/serial_ns16550.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/drivers/serial/serial_ns16550.c b/drivers/serial/serial_ns16550.c index 72bf8e4647..2c6ddabf85 100644 --- a/drivers/serial/serial_ns16550.c +++ b/drivers/serial/serial_ns16550.c @@ -554,12 +554,11 @@ static int ns16550_probe(struct device *dev) devtype->init_port(cdev); ret = console_register(cdev); - if (ret) - goto clk_disable; + if (!ret) + return 0; - return 0; + free_const(cdev->linux_earlycon_name); -clk_disable: clk_disable(priv->clk); clk_put(priv->clk); release_region: -- 2.52.0
