Commit 507b0506 authored by Wang Weiyang's avatar Wang Weiyang Committed by Greg Kroah-Hartman

tty: goldfish: Use tty_port_destroy() to destroy port

In goldfish_tty_probe(), the port initialized through tty_port_init()
should be destroyed in error paths.In goldfish_tty_remove(), qtty->port
also should be destroyed or else might leak resources.

Fix the above by calling tty_port_destroy().

Fixes: 666b7793 ("goldfish: tty driver")
Reviewed-by: default avatarJiri Slaby <jirislaby@kernel.org>
Signed-off-by: default avatarWang Weiyang <wangweiyang2@huawei.com>
Link: https://lore.kernel.org/r/20220328115844.86032-1-wangweiyang2@huawei.comSigned-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 9c3a431a
...@@ -405,6 +405,7 @@ static int goldfish_tty_probe(struct platform_device *pdev) ...@@ -405,6 +405,7 @@ static int goldfish_tty_probe(struct platform_device *pdev)
err_tty_register_device_failed: err_tty_register_device_failed:
free_irq(irq, qtty); free_irq(irq, qtty);
err_dec_line_count: err_dec_line_count:
tty_port_destroy(&qtty->port);
goldfish_tty_current_line_count--; goldfish_tty_current_line_count--;
if (goldfish_tty_current_line_count == 0) if (goldfish_tty_current_line_count == 0)
goldfish_tty_delete_driver(); goldfish_tty_delete_driver();
...@@ -426,6 +427,7 @@ static int goldfish_tty_remove(struct platform_device *pdev) ...@@ -426,6 +427,7 @@ static int goldfish_tty_remove(struct platform_device *pdev)
iounmap(qtty->base); iounmap(qtty->base);
qtty->base = NULL; qtty->base = NULL;
free_irq(qtty->irq, pdev); free_irq(qtty->irq, pdev);
tty_port_destroy(&qtty->port);
goldfish_tty_current_line_count--; goldfish_tty_current_line_count--;
if (goldfish_tty_current_line_count == 0) if (goldfish_tty_current_line_count == 0)
goldfish_tty_delete_driver(); goldfish_tty_delete_driver();
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment