提交 6c2e6317 编写于 作者: J Jiri Slaby 提交者: Greg Kroah-Hartman

tty: do not check tty_unregister_driver's return value

These drivers check tty_unregister_driver return value. But they don't
handle a failure correctly (they free the driver in any case). So stop
checking tty_unregister_driver return value and remove also the prints.

In the next patch, tty_unregister_driver's return type will be switched
to void.

Cc: Chris Zankel <chris@zankel.net>
Cc: Max Filippov <jcmvbkbc@gmail.com>
Cc: linux-xtensa@linux-xtensa.org
Cc: Jiri Kosina <jikos@kernel.org>
Cc: David Sterba <dsterba@suse.com>
Reviewed-by: NMax Filippov <jcmvbkbc@gmail.com>
Acked-by: NDavid Sterba <dsterba@suse.com>
Signed-off-by: NJiri Slaby <jslaby@suse.cz>
Link: https://lore.kernel.org/r/20210302062214.29627-34-jslaby@suse.czSigned-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
上级 ba444ea3
...@@ -171,11 +171,7 @@ static int __init rs_init(void) ...@@ -171,11 +171,7 @@ static int __init rs_init(void)
static __exit void rs_exit(void) static __exit void rs_exit(void)
{ {
int error; tty_unregister_driver(serial_driver);
if ((error = tty_unregister_driver(serial_driver)))
pr_err("ISS_SERIAL: failed to unregister serial driver (%d)\n",
error);
put_tty_driver(serial_driver); put_tty_driver(serial_driver);
tty_port_destroy(&serial_port); tty_port_destroy(&serial_port);
} }
......
...@@ -1622,21 +1622,17 @@ static int __init amiga_serial_probe(struct platform_device *pdev) ...@@ -1622,21 +1622,17 @@ static int __init amiga_serial_probe(struct platform_device *pdev)
static int __exit amiga_serial_remove(struct platform_device *pdev) static int __exit amiga_serial_remove(struct platform_device *pdev)
{ {
int error;
struct serial_state *state = platform_get_drvdata(pdev); struct serial_state *state = platform_get_drvdata(pdev);
/* printk("Unloading %s: version %s\n", serial_name, serial_version); */ /* printk("Unloading %s: version %s\n", serial_name, serial_version); */
error = tty_unregister_driver(serial_driver); tty_unregister_driver(serial_driver);
if (error)
printk("SERIAL: failed to unregister serial driver (%d)\n",
error);
put_tty_driver(serial_driver); put_tty_driver(serial_driver);
tty_port_destroy(&state->tport); tty_port_destroy(&state->tport);
free_irq(IRQ_AMIGA_TBE, state); free_irq(IRQ_AMIGA_TBE, state);
free_irq(IRQ_AMIGA_RBF, state); free_irq(IRQ_AMIGA_RBF, state);
return error; return 0;
} }
static struct platform_driver amiga_serial_driver = { static struct platform_driver amiga_serial_driver = {
......
...@@ -596,13 +596,8 @@ int ipwireless_tty_init(void) ...@@ -596,13 +596,8 @@ int ipwireless_tty_init(void)
void ipwireless_tty_release(void) void ipwireless_tty_release(void)
{ {
int ret; tty_unregister_driver(ipw_tty_driver);
ret = tty_unregister_driver(ipw_tty_driver);
put_tty_driver(ipw_tty_driver); put_tty_driver(ipw_tty_driver);
if (ret != 0)
printk(KERN_ERR IPWIRELESS_PCCARD_NAME
": tty_unregister_driver failed with code %d\n", ret);
} }
int ipwireless_tty_is_modem(struct ipw_tty *tty) int ipwireless_tty_is_modem(struct ipw_tty *tty)
......
...@@ -1118,9 +1118,7 @@ static void __exit moxa_exit(void) ...@@ -1118,9 +1118,7 @@ static void __exit moxa_exit(void)
del_timer_sync(&moxaTimer); del_timer_sync(&moxaTimer);
if (tty_unregister_driver(moxaDriver)) tty_unregister_driver(moxaDriver);
printk(KERN_ERR "Couldn't unregister MOXA Intellio family "
"serial driver\n");
put_tty_driver(moxaDriver); put_tty_driver(moxaDriver);
} }
......
...@@ -373,9 +373,7 @@ int kgdb_unregister_nmi_console(void) ...@@ -373,9 +373,7 @@ int kgdb_unregister_nmi_console(void)
if (ret) if (ret)
return ret; return ret;
ret = tty_unregister_driver(kgdb_nmi_tty_driver); tty_unregister_driver(kgdb_nmi_tty_driver);
if (ret)
return ret;
put_tty_driver(kgdb_nmi_tty_driver); put_tty_driver(kgdb_nmi_tty_driver);
return 0; return 0;
......
...@@ -3705,7 +3705,6 @@ static const struct tty_operations ops = { ...@@ -3705,7 +3705,6 @@ static const struct tty_operations ops = {
static void slgt_cleanup(void) static void slgt_cleanup(void)
{ {
int rc;
struct slgt_info *info; struct slgt_info *info;
struct slgt_info *tmp; struct slgt_info *tmp;
...@@ -3714,9 +3713,7 @@ static void slgt_cleanup(void) ...@@ -3714,9 +3713,7 @@ static void slgt_cleanup(void)
if (serial_driver) { if (serial_driver) {
for (info=slgt_device_list ; info != NULL ; info=info->next_device) for (info=slgt_device_list ; info != NULL ; info=info->next_device)
tty_unregister_device(serial_driver, info->line); tty_unregister_device(serial_driver, info->line);
rc = tty_unregister_driver(serial_driver); tty_unregister_driver(serial_driver);
if (rc)
DBGERR(("tty_unregister_driver error=%d\n", rc));
put_tty_driver(serial_driver); put_tty_driver(serial_driver);
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册