Many drivers with tty use the tty_stand_install(). But, there is no need to handle the error, since it always returns 0. So, change the return type of tty_standard_install() and tty_port_install() to void type and remove unnecessary exception handling where we use these functions.
Change return type for tty functions. Patch No.01 tty: Change return type to void
Apply tty_port_install() changes. Patch No.02~14 isdn: i4l: isdn_tty: Change return type to void ... Bluetooth: Change return type to void
Apply tty_standard_install() changes. Patch No.15~25 um: Change return type to void ... usb: usb-serial: Change return type to void
Jaejoong Kim (25): tty: Change return type to void isdn: i4l: isdn_tty: Change return type to void s390: char: con3215: Change return type to void s390: char: tty3270: Change return type to void tty: hvc: hvc_console: Change return type to void tty: hvc: hvcs: Change return type to void tty: mips_ejtag_fdc: Change return type to void tty: n_gsm: Change return type to void tty: serial: kgdb_nmi: Change return type to void tty: synclink: Change return type to void tty: synclinkmp: Change return type to void tty: vt: Change return type to void usb: xhci: dbc: Change return type to void Bluetooth: Change return type to void um: Change return type to void isdn: capi: Change return type to void misc: pti: Change return type to void mmc: core: sdio_uart: Change return type to void staging: fwserial: Change return type to void staging: gdm724x: gdm_tty: Change return type to void staging: greybus: uart: Change return type to void tty: nozomi: Change return type to void tty: vcc: Change return type to void usb: cdc-acm: Change return type to void usb: usb-serial: Change return type to void
arch/um/drivers/line.c | 7 +------ drivers/isdn/capi/capi.c | 10 ++++------ drivers/isdn/i4l/isdn_tty.c | 3 ++- drivers/misc/pti.c | 28 +++++++++++++--------------- drivers/mmc/core/sdio_uart.c | 11 ++++------- drivers/s390/char/con3215.c | 3 ++- drivers/s390/char/tty3270.c | 7 +------ drivers/staging/fwserial/fwserial.c | 22 ++++++++-------------- drivers/staging/gdm724x/gdm_tty.c | 11 +++-------- drivers/staging/greybus/uart.c | 10 ++-------- drivers/tty/hvc/hvc_console.c | 7 ++----- drivers/tty/hvc/hvcs.c | 10 ++-------- drivers/tty/mips_ejtag_fdc.c | 4 +++- drivers/tty/n_gsm.c | 9 +-------- drivers/tty/nozomi.c | 8 +++----- drivers/tty/serial/kgdb_nmi.c | 11 +---------- drivers/tty/synclink.c | 3 ++- drivers/tty/synclinkmp.c | 3 ++- drivers/tty/tty_io.c | 10 ++++++---- drivers/tty/tty_port.c | 4 ++-- drivers/tty/vcc.c | 5 +---- drivers/tty/vt/vt.c | 5 +---- drivers/usb/class/cdc-acm.c | 10 +--------- drivers/usb/host/xhci-dbgtty.c | 3 ++- drivers/usb/serial/usb-serial.c | 6 +----- include/linux/tty.h | 4 ++-- net/bluetooth/rfcomm/tty.c | 7 +------ 27 files changed, 73 insertions(+), 148 deletions(-)
Many drivers with tty use the tty_stand_install(). But, there is no need to handle the error, since it always returns 0. So, change the return type of tty_standard_install() and tty_port_install() to void type and remove unnecessary exception handling where we use these functions.
Signed-off-by: Jaejoong Kim climbbb.kim@gmail.com --- drivers/tty/tty_io.c | 10 ++++++---- drivers/tty/tty_port.c | 4 ++-- include/linux/tty.h | 4 ++-- 3 files changed, 10 insertions(+), 8 deletions(-)
diff --git a/drivers/tty/tty_io.c b/drivers/tty/tty_io.c index 32bc3e3..b01cec8 100644 --- a/drivers/tty/tty_io.c +++ b/drivers/tty/tty_io.c @@ -1196,13 +1196,12 @@ void tty_init_termios(struct tty_struct *tty) } EXPORT_SYMBOL_GPL(tty_init_termios);
-int tty_standard_install(struct tty_driver *driver, struct tty_struct *tty) +void tty_standard_install(struct tty_driver *driver, struct tty_struct *tty) { tty_init_termios(tty); tty_driver_kref_get(driver); tty->count++; driver->ttys[tty->index] = tty; - return 0; } EXPORT_SYMBOL_GPL(tty_standard_install);
@@ -1221,8 +1220,11 @@ EXPORT_SYMBOL_GPL(tty_standard_install); static int tty_driver_install_tty(struct tty_driver *driver, struct tty_struct *tty) { - return driver->ops->install ? driver->ops->install(driver, tty) : - tty_standard_install(driver, tty); + if (driver->ops->install) + return driver->ops->install(driver, tty); + + tty_standard_install(driver, tty); + return 0; }
/** diff --git a/drivers/tty/tty_port.c b/drivers/tty/tty_port.c index 25d7368..fd8d40d 100644 --- a/drivers/tty/tty_port.c +++ b/drivers/tty/tty_port.c @@ -656,11 +656,11 @@ EXPORT_SYMBOL(tty_port_close); * to a concrete tty specified by @tty. Use this or tty_port_register_device * (or both). Call tty_port_link_device as a last resort. */ -int tty_port_install(struct tty_port *port, struct tty_driver *driver, +void tty_port_install(struct tty_port *port, struct tty_driver *driver, struct tty_struct *tty) { tty->port = port; - return tty_standard_install(driver, tty); + tty_standard_install(driver, tty); } EXPORT_SYMBOL_GPL(tty_port_install);
diff --git a/include/linux/tty.h b/include/linux/tty.h index c56e397..63cdac1 100644 --- a/include/linux/tty.h +++ b/include/linux/tty.h @@ -556,7 +556,7 @@ extern struct tty_struct *tty_init_dev(struct tty_driver *driver, int idx); extern void tty_release_struct(struct tty_struct *tty, int idx); extern int tty_release(struct inode *inode, struct file *filp); extern void tty_init_termios(struct tty_struct *tty); -extern int tty_standard_install(struct tty_driver *driver, +extern void tty_standard_install(struct tty_driver *driver, struct tty_struct *tty);
extern struct mutex tty_mutex; @@ -688,7 +688,7 @@ extern int tty_port_close_start(struct tty_port *port, extern void tty_port_close_end(struct tty_port *port, struct tty_struct *tty); extern void tty_port_close(struct tty_port *port, struct tty_struct *tty, struct file *filp); -extern int tty_port_install(struct tty_port *port, struct tty_driver *driver, +extern void tty_port_install(struct tty_port *port, struct tty_driver *driver, struct tty_struct *tty); extern int tty_port_open(struct tty_port *port, struct tty_struct *tty, struct file *filp);
Hello!
On 9/4/2018 5:44 AM, Jaejoong Kim wrote:
Many drivers with tty use the tty_stand_install(). But, there is no need to handle the error, since it always returns 0. So, change the return type of tty_standard_install() and tty_port_install() to void type and remove unnecessary exception handling where we use these functions.
Signed-off-by: Jaejoong Kim climbbb.kim@gmail.com
drivers/tty/tty_io.c | 10 ++++++---- drivers/tty/tty_port.c | 4 ++-- include/linux/tty.h | 4 ++-- 3 files changed, 10 insertions(+), 8 deletions(-)
[...]
diff --git a/include/linux/tty.h b/include/linux/tty.h index c56e397..63cdac1 100644 --- a/include/linux/tty.h +++ b/include/linux/tty.h @@ -556,7 +556,7 @@ extern struct tty_struct *tty_init_dev(struct tty_driver *driver, int idx); extern void tty_release_struct(struct tty_struct *tty, int idx); extern int tty_release(struct inode *inode, struct file *filp); extern void tty_init_termios(struct tty_struct *tty); -extern int tty_standard_install(struct tty_driver *driver, +extern void tty_standard_install(struct tty_driver *driver, struct tty_struct *tty); extern struct mutex tty_mutex; @@ -688,7 +688,7 @@ extern int tty_port_close_start(struct tty_port *port, extern void tty_port_close_end(struct tty_port *port, struct tty_struct *tty); extern void tty_port_close(struct tty_port *port, struct tty_struct *tty, struct file *filp); -extern int tty_port_install(struct tty_port *port, struct tty_driver *driver, +extern void tty_port_install(struct tty_port *port, struct tty_driver *driver, struct tty_struct *tty);
You need to update all the callers in the same patch -- the kernel must remain buildable after each patch but you seem to have spread that update among a lot of patches..
[...]
MBR, Sergei
Hi. On Tue, Sep 4, 2018 at 7:45 PM Sergei Shtylyov < sergei.shtylyov@cogentembedded.com> wrote:
Hello!
On 9/4/2018 5:44 AM, Jaejoong Kim wrote:
Many drivers with tty use the tty_stand_install(). But, there is no need to handle the error, since it always returns 0. So, change the return type of tty_standard_install() and tty_port_install() to void type and remove unnecessary exception handling where we use these functions.
Signed-off-by: Jaejoong Kim climbbb.kim@gmail.com
drivers/tty/tty_io.c | 10 ++++++---- drivers/tty/tty_port.c | 4 ++-- include/linux/tty.h | 4 ++-- 3 files changed, 10 insertions(+), 8 deletions(-)
[...]
diff --git a/include/linux/tty.h b/include/linux/tty.h index c56e397..63cdac1 100644 --- a/include/linux/tty.h +++ b/include/linux/tty.h @@ -556,7 +556,7 @@ extern struct tty_struct *tty_init_dev(struct
tty_driver *driver, int idx);
extern void tty_release_struct(struct tty_struct *tty, int idx); extern int tty_release(struct inode *inode, struct file *filp); extern void tty_init_termios(struct tty_struct *tty); -extern int tty_standard_install(struct tty_driver *driver, +extern void tty_standard_install(struct tty_driver *driver, struct tty_struct *tty);
extern struct mutex tty_mutex; @@ -688,7 +688,7 @@ extern int tty_port_close_start(struct tty_port
*port,
extern void tty_port_close_end(struct tty_port *port, struct
tty_struct *tty);
extern void tty_port_close(struct tty_port *port, struct tty_struct *tty, struct file *filp); -extern int tty_port_install(struct tty_port *port, struct tty_driver
*driver,
+extern void tty_port_install(struct tty_port *port, struct tty_driver
*driver,
struct tty_struct *tty);
You need to update all the callers in the same patch -- the kernel
must remain buildable after each patch but you seem to have spread that update among a lot of patches..
OK. I will make several patches as one patch.
Jaejoong
[...]
MBR, Sergei
On 09/05/2018, 03:08 AM, Jaejoong Kim wrote:
> @@ -688,7 +688,7 @@ extern int tty_port_close_start(struct tty_port *port, > extern void tty_port_close_end(struct tty_port *port, struct tty_struct *tty); > extern void tty_port_close(struct tty_port *port, > struct tty_struct *tty, struct file *filp); > -extern int tty_port_install(struct tty_port *port, struct tty_driver *driver, > +extern void tty_port_install(struct tty_port *port, struct tty_driver *driver, > struct tty_struct *tty); You need to update all the callers in the same patch -- the kernel must remain buildable after each patch but you seem to have spread that update among a lot of patches..
OK. I will make several patches as one patch.
You don't have to. Just reorder the patches as suggested by Sam. (First, make everybody ignore the return value, then change these return types to void.)
BTW you can mention in this commit log, that this change is possible after a3123fd0a4a5. That commit made tty_standard_install to always return 0.
thanks,
On Wed, Sep 5, 2018 at 2:57 PM Jiri Slaby jslaby@suse.cz wrote:
On 09/05/2018, 03:08 AM, Jaejoong Kim wrote:
> @@ -688,7 +688,7 @@ extern int tty_port_close_start(struct tty_port *port, > extern void tty_port_close_end(struct tty_port *port, struct tty_struct *tty); > extern void tty_port_close(struct tty_port *port, > struct tty_struct *tty, struct file *filp); > -extern int tty_port_install(struct tty_port *port, struct tty_driver *driver, > +extern void tty_port_install(struct tty_port *port, struct tty_driver *driver, > struct tty_struct *tty); You need to update all the callers in the same patch -- the kernel must remain buildable after each patch but you seem to have spread that update among a lot of patches..
OK. I will make several patches as one patch.
You don't have to. Just reorder the patches as suggested by Sam. (First, make everybody ignore the return value, then change these return types to void.)
I should have waited more.. I already made V2 and it will be drop. :)
BTW you can mention in this commit log, that this change is possible after a3123fd0a4a5. That commit made tty_standard_install to always return 0.
OK. Thanks for the guide line. I will come back with V3.
Jaejoong
thanks,
js suse labs
Since tty_port_install() always returns 0, the return type has changed to void. Now apply this and remove the obsolete error check.
Signed-off-by: Jaejoong Kim climbbb.kim@gmail.com --- drivers/isdn/i4l/isdn_tty.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/drivers/isdn/i4l/isdn_tty.c b/drivers/isdn/i4l/isdn_tty.c index b730037..3d6b24e 100644 --- a/drivers/isdn/i4l/isdn_tty.c +++ b/drivers/isdn/i4l/isdn_tty.c @@ -1481,8 +1481,9 @@ static int isdn_tty_install(struct tty_driver *driver, struct tty_struct *tty) return -ENODEV;
tty->driver_data = info; + tty_port_install(&info->port, driver, tty);
- return tty_port_install(&info->port, driver, tty); + return 0; }
/*
Since tty_port_install() always returns 0, the return type has changed to void. Now apply this and remove the obsolete error check.
Signed-off-by: Jaejoong Kim climbbb.kim@gmail.com --- drivers/s390/char/con3215.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/drivers/s390/char/con3215.c b/drivers/s390/char/con3215.c index 8c9d412..6a9f6d9 100644 --- a/drivers/s390/char/con3215.c +++ b/drivers/s390/char/con3215.c @@ -965,8 +965,9 @@ static int tty3215_install(struct tty_driver *driver, struct tty_struct *tty) return -ENODEV;
tty->driver_data = raw; + tty_port_install(&raw->port, driver, tty);
- return tty_port_install(&raw->port, driver, tty); + return 0; }
/*
Since tty_port_install() always returns 0, the return type has changed to void. Now apply this and remove the obsolete error check.
Signed-off-by: Jaejoong Kim climbbb.kim@gmail.com --- drivers/s390/char/tty3270.c | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-)
diff --git a/drivers/s390/char/tty3270.c b/drivers/s390/char/tty3270.c index 5b8af27..2915f95 100644 --- a/drivers/s390/char/tty3270.c +++ b/drivers/s390/char/tty3270.c @@ -1017,12 +1017,7 @@ static int tty3270_install(struct tty_driver *driver, struct tty_struct *tty) raw3270_activate_view(&tp->view);
port_install: - rc = tty_port_install(&tp->port, driver, tty); - if (rc) { - raw3270_put_view(&tp->view); - return rc; - } - + tty_port_install(&tp->port, driver, tty); tty->driver_data = tp;
return 0;
Since tty_port_install() always returns 0, the return type has changed to void. Now apply this and remove the obsolete error check.
Signed-off-by: Jaejoong Kim climbbb.kim@gmail.com --- drivers/tty/hvc/hvc_console.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-)
diff --git a/drivers/tty/hvc/hvc_console.c b/drivers/tty/hvc/hvc_console.c index 5414c4a..13fad62 100644 --- a/drivers/tty/hvc/hvc_console.c +++ b/drivers/tty/hvc/hvc_console.c @@ -329,7 +329,6 @@ static void hvc_unthrottle(struct tty_struct *tty) static int hvc_install(struct tty_driver *driver, struct tty_struct *tty) { struct hvc_struct *hp; - int rc;
/* Auto increments kref reference if found. */ hp = hvc_get_by_index(tty->index); @@ -337,11 +336,9 @@ static int hvc_install(struct tty_driver *driver, struct tty_struct *tty) return -ENODEV;
tty->driver_data = hp; + tty_port_install(&hp->port, driver, tty);
- rc = tty_port_install(&hp->port, driver, tty); - if (rc) - tty_port_put(&hp->port); - return rc; + return 0; }
/*
Since tty_port_install() always returns 0, the return type has changed to void. Now apply this and remove the obsolete error check.
Signed-off-by: Jaejoong Kim climbbb.kim@gmail.com --- drivers/tty/hvc/hvcs.c | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-)
diff --git a/drivers/tty/hvc/hvcs.c b/drivers/tty/hvc/hvcs.c index cb4db1b..4dfa70c 100644 --- a/drivers/tty/hvc/hvcs.c +++ b/drivers/tty/hvc/hvcs.c @@ -1140,16 +1140,10 @@ static int hvcs_install(struct tty_driver *driver, struct tty_struct *tty) goto err_put; }
- retval = tty_port_install(&hvcsd->port, driver, tty); - if (retval) - goto err_irq; + tty_port_install(&hvcsd->port, driver, tty);
return 0; -err_irq: - spin_lock_irqsave(&hvcsd->lock, flags); - vio_disable_interrupts(hvcsd->vdev); - spin_unlock_irqrestore(&hvcsd->lock, flags); - free_irq(irq, hvcsd); + err_put: tty_port_put(&hvcsd->port);
Since tty_port_install() always returns 0, the return type has changed to void. Now apply this and remove the obsolete error check.
Signed-off-by: Jaejoong Kim climbbb.kim@gmail.com --- drivers/tty/mips_ejtag_fdc.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/drivers/tty/mips_ejtag_fdc.c b/drivers/tty/mips_ejtag_fdc.c index 4c1cd49..33e06b4 100644 --- a/drivers/tty/mips_ejtag_fdc.c +++ b/drivers/tty/mips_ejtag_fdc.c @@ -763,7 +763,9 @@ static int mips_ejtag_fdc_tty_install(struct tty_driver *driver, struct mips_ejtag_fdc_tty *priv = driver->driver_state;
tty->driver_data = &priv->ports[tty->index]; - return tty_port_install(&priv->ports[tty->index].port, driver, tty); + tty_port_install(&priv->ports[tty->index].port, driver, tty); + + return 0; }
static int mips_ejtag_fdc_tty_open(struct tty_struct *tty, struct file *filp)
Since tty_port_install() always returns 0, the return type has changed to void. Now apply this and remove the obsolete error check.
Signed-off-by: Jaejoong Kim climbbb.kim@gmail.com --- drivers/tty/n_gsm.c | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-)
diff --git a/drivers/tty/n_gsm.c b/drivers/tty/n_gsm.c index 86b7e20..c52fa2d 100644 --- a/drivers/tty/n_gsm.c +++ b/drivers/tty/n_gsm.c @@ -2917,7 +2917,6 @@ static int gsmtty_install(struct tty_driver *driver, struct tty_struct *tty) unsigned int line = tty->index; unsigned int mux = line >> 6; bool alloc = false; - int ret;
line = line & 0x3F;
@@ -2949,14 +2948,8 @@ static int gsmtty_install(struct tty_driver *driver, struct tty_struct *tty) mutex_unlock(&gsm->mutex); return -ENOMEM; } - ret = tty_port_install(&dlci->port, driver, tty); - if (ret) { - if (alloc) - dlci_put(dlci); - mutex_unlock(&gsm->mutex); - return ret; - }
+ tty_port_install(&dlci->port, driver, tty); dlci_get(dlci); dlci_get(gsm->dlci[0]); mux_get(gsm);
Since tty_port_install() always returns 0, the return type has changed to void. Now apply this and remove the obsolete error check.
Signed-off-by: Jaejoong Kim climbbb.kim@gmail.com --- drivers/tty/serial/kgdb_nmi.c | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-)
diff --git a/drivers/tty/serial/kgdb_nmi.c b/drivers/tty/serial/kgdb_nmi.c index 4029272..ed8f806 100644 --- a/drivers/tty/serial/kgdb_nmi.c +++ b/drivers/tty/serial/kgdb_nmi.c @@ -234,7 +234,6 @@ static const struct tty_port_operations kgdb_nmi_tty_port_ops = { static int kgdb_nmi_tty_install(struct tty_driver *drv, struct tty_struct *tty) { struct kgdb_nmi_tty_priv *priv; - int ret;
priv = kzalloc(sizeof(*priv), GFP_KERNEL); if (!priv) @@ -245,17 +244,9 @@ static int kgdb_nmi_tty_install(struct tty_driver *drv, struct tty_struct *tty) tty_port_init(&priv->port); priv->port.ops = &kgdb_nmi_tty_port_ops; tty->driver_data = priv; + tty_port_install(&priv->port, drv, tty);
- ret = tty_port_install(&priv->port, drv, tty); - if (ret) { - pr_err("%s: can't install tty port: %d\n", __func__, ret); - goto err; - } return 0; -err: - tty_port_destroy(&priv->port); - kfree(priv); - return ret; }
static void kgdb_nmi_tty_cleanup(struct tty_struct *tty)
Since tty_port_install() always returns 0, the return type has changed to void. Now apply this and remove the obsolete error check.
Signed-off-by: Jaejoong Kim climbbb.kim@gmail.com --- drivers/tty/synclink.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/drivers/tty/synclink.c b/drivers/tty/synclink.c index fbdf4d0..6e7e4d6 100644 --- a/drivers/tty/synclink.c +++ b/drivers/tty/synclink.c @@ -3355,8 +3355,9 @@ static int mgsl_install(struct tty_driver *driver, struct tty_struct *tty) if (mgsl_paranoia_check(info, tty->name, "mgsl_open")) return -ENODEV; tty->driver_data = info; + tty_port_install(&info->port, driver, tty);
- return tty_port_install(&info->port, driver, tty); + return 0; }
/* mgsl_open()
Since tty_port_install() always returns 0, the return type has changed to void. Now apply this and remove the obsolete error check.
Signed-off-by: Jaejoong Kim climbbb.kim@gmail.com --- drivers/tty/synclinkmp.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/drivers/tty/synclinkmp.c b/drivers/tty/synclinkmp.c index 1e4d5b9..2d99a5b 100644 --- a/drivers/tty/synclinkmp.c +++ b/drivers/tty/synclinkmp.c @@ -734,8 +734,9 @@ static int install(struct tty_driver *driver, struct tty_struct *tty) }
tty->driver_data = info; + tty_port_install(&info->port, driver, tty);
- return tty_port_install(&info->port, driver, tty); + return 0; }
/* Called when a port is opened. Init and enable port.
Since tty_port_install() always returns 0, the return type has changed to void. Now apply this and remove the obsolete error check.
Signed-off-by: Jaejoong Kim climbbb.kim@gmail.com --- drivers/tty/vt/vt.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-)
diff --git a/drivers/tty/vt/vt.c b/drivers/tty/vt/vt.c index 5f1183b..cc72254 100644 --- a/drivers/tty/vt/vt.c +++ b/drivers/tty/vt/vt.c @@ -3222,10 +3222,7 @@ static int con_install(struct tty_driver *driver, struct tty_struct *tty) goto unlock; }
- ret = tty_port_install(&vc->port, driver, tty); - if (ret) - goto unlock; - + tty_port_install(&vc->port, driver, tty); tty->driver_data = vc; vc->port.tty = tty;
Since tty_port_install() always returns 0, the return type has changed to void. Now apply this and remove the obsolete error check.
Signed-off-by: Jaejoong Kim climbbb.kim@gmail.com --- drivers/usb/host/xhci-dbgtty.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/drivers/usb/host/xhci-dbgtty.c b/drivers/usb/host/xhci-dbgtty.c index aff79ff..18d661c 100644 --- a/drivers/usb/host/xhci-dbgtty.c +++ b/drivers/usb/host/xhci-dbgtty.c @@ -174,8 +174,9 @@ static int dbc_tty_install(struct tty_driver *driver, struct tty_struct *tty) struct dbc_port *port = driver->driver_state;
tty->driver_data = port; + tty_port_install(&port->port, driver, tty);
- return tty_port_install(&port->port, driver, tty); + return 0; }
static int dbc_tty_open(struct tty_struct *tty, struct file *file)
Since tty_port_install() always returns 0, the return type has changed to void. Now apply this and remove the obsolete error check.
Signed-off-by: Jaejoong Kim climbbb.kim@gmail.com --- net/bluetooth/rfcomm/tty.c | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-)
diff --git a/net/bluetooth/rfcomm/tty.c b/net/bluetooth/rfcomm/tty.c index 5e44d84..b654420 100644 --- a/net/bluetooth/rfcomm/tty.c +++ b/net/bluetooth/rfcomm/tty.c @@ -710,7 +710,6 @@ static int rfcomm_tty_install(struct tty_driver *driver, struct tty_struct *tty) { struct rfcomm_dev *dev; struct rfcomm_dlc *dlc; - int err;
dev = rfcomm_dev_get(tty->index); if (!dev) @@ -725,11 +724,7 @@ static int rfcomm_tty_install(struct tty_driver *driver, struct tty_struct *tty) set_bit(RFCOMM_TTY_ATTACHED, &dev->flags);
/* install the tty_port */ - err = tty_port_install(&dev->port, driver, tty); - if (err) { - rfcomm_tty_cleanup(tty); - return err; - } + tty_port_install(&dev->port, driver, tty);
/* take over the tty_port reference if the port was created with the * flag RFCOMM_RELEASE_ONHUP. This will force the release of the port
Since tty_standard_install() always returns 0, the return type has changed to void. Now apply this and remove the obsolete error check.
Signed-off-by: Jaejoong Kim climbbb.kim@gmail.com --- arch/um/drivers/line.c | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-)
diff --git a/arch/um/drivers/line.c b/arch/um/drivers/line.c index 8d80b27..47058cf 100644 --- a/arch/um/drivers/line.c +++ b/arch/um/drivers/line.c @@ -338,12 +338,7 @@ int line_open(struct tty_struct *tty, struct file *filp) int line_install(struct tty_driver *driver, struct tty_struct *tty, struct line *line) { - int ret; - - ret = tty_standard_install(driver, tty); - if (ret) - return ret; - + tty_standard_install(driver, tty); tty->driver_data = line;
return 0;
Since tty_standard_install() always returns 0, the return type has changed to void. Now apply this and remove the obsolete error check.
Signed-off-by: Jaejoong Kim climbbb.kim@gmail.com --- drivers/isdn/capi/capi.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-)
diff --git a/drivers/isdn/capi/capi.c b/drivers/isdn/capi/capi.c index ef5560b..08daf3a 100644 --- a/drivers/isdn/capi/capi.c +++ b/drivers/isdn/capi/capi.c @@ -999,13 +999,11 @@ static int capinc_tty_install(struct tty_driver *driver, struct tty_struct *tty) { struct capiminor *mp = capiminor_get(tty->index); - int ret = tty_standard_install(driver, tty);
- if (ret == 0) - tty->driver_data = mp; - else - capiminor_put(mp); - return ret; + tty_standard_install(driver, tty); + tty->driver_data = mp; + + return 0; }
static void capinc_tty_cleanup(struct tty_struct *tty)
Since tty_standard_install() always returns 0, the return type has changed to void. Now apply this and remove the obsolete error check.
Signed-off-by: Jaejoong Kim climbbb.kim@gmail.com --- drivers/misc/pti.c | 28 +++++++++++++--------------- 1 file changed, 13 insertions(+), 15 deletions(-)
diff --git a/drivers/misc/pti.c b/drivers/misc/pti.c index 41f2a9f..5c885a1 100644 --- a/drivers/misc/pti.c +++ b/drivers/misc/pti.c @@ -462,26 +462,24 @@ static int pti_tty_install(struct tty_driver *driver, struct tty_struct *tty) { int idx = tty->index; struct pti_tty *pti_tty_data; - int ret = tty_standard_install(driver, tty);
- if (ret == 0) { - pti_tty_data = kmalloc(sizeof(struct pti_tty), GFP_KERNEL); - if (pti_tty_data == NULL) - return -ENOMEM; + tty_standard_install(driver, tty); + pti_tty_data = kmalloc(sizeof(struct pti_tty), GFP_KERNEL); + if (pti_tty_data == NULL) + return -ENOMEM;
- if (idx == PTITTY_MINOR_START) - pti_tty_data->mc = pti_request_masterchannel(0, NULL); - else - pti_tty_data->mc = pti_request_masterchannel(2, NULL); + if (idx == PTITTY_MINOR_START) + pti_tty_data->mc = pti_request_masterchannel(0, NULL); + else + pti_tty_data->mc = pti_request_masterchannel(2, NULL);
- if (pti_tty_data->mc == NULL) { - kfree(pti_tty_data); - return -ENXIO; - } - tty->driver_data = pti_tty_data; + if (pti_tty_data->mc == NULL) { + kfree(pti_tty_data); + return -ENXIO; } + tty->driver_data = pti_tty_data;
- return ret; + return 0; }
/**
Since tty_standard_install() always returns 0, the return type has changed to void. Now apply this and remove the obsolete error check.
Signed-off-by: Jaejoong Kim climbbb.kim@gmail.com --- drivers/mmc/core/sdio_uart.c | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-)
diff --git a/drivers/mmc/core/sdio_uart.c b/drivers/mmc/core/sdio_uart.c index 25e1130..b727186 100644 --- a/drivers/mmc/core/sdio_uart.c +++ b/drivers/mmc/core/sdio_uart.c @@ -731,14 +731,11 @@ static int sdio_uart_install(struct tty_driver *driver, struct tty_struct *tty) { int idx = tty->index; struct sdio_uart_port *port = sdio_uart_port_get(idx); - int ret = tty_standard_install(driver, tty);
- if (ret == 0) - /* This is the ref sdio_uart_port get provided */ - tty->driver_data = port; - else - sdio_uart_port_put(port); - return ret; + tty_standard_install(driver, tty); + tty->driver_data = port; + + return 0; }
/**
Since tty_standard_install() always returns 0, the return type has changed to void. Now apply this and remove the obsolete error check.
Signed-off-by: Jaejoong Kim climbbb.kim@gmail.com --- drivers/staging/fwserial/fwserial.c | 22 ++++++++-------------- 1 file changed, 8 insertions(+), 14 deletions(-)
diff --git a/drivers/staging/fwserial/fwserial.c b/drivers/staging/fwserial/fwserial.c index fa0dd42..5134019 100644 --- a/drivers/staging/fwserial/fwserial.c +++ b/drivers/staging/fwserial/fwserial.c @@ -1064,27 +1064,21 @@ static void fwtty_cleanup(struct tty_struct *tty) static int fwtty_install(struct tty_driver *driver, struct tty_struct *tty) { struct fwtty_port *port = fwtty_port_get(tty->index); - int err;
- err = tty_standard_install(driver, tty); - if (!err) - tty->driver_data = port; - else - fwtty_port_put(port); - return err; + tty_standard_install(driver, tty); + tty->driver_data = port; + + return 0; }
static int fwloop_install(struct tty_driver *driver, struct tty_struct *tty) { struct fwtty_port *port = fwtty_port_get(table_idx(tty->index)); - int err;
- err = tty_standard_install(driver, tty); - if (!err) - tty->driver_data = port; - else - fwtty_port_put(port); - return err; + tty_standard_install(driver, tty); + tty->driver_data = port; + + return 0; }
static int fwtty_write(struct tty_struct *tty, const unsigned char *buf, int c)
Since tty_standard_install() always returns 0, the return type has changed to void. Now apply this and remove the obsolete error check.
Signed-off-by: Jaejoong Kim climbbb.kim@gmail.com --- drivers/staging/gdm724x/gdm_tty.c | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-)
diff --git a/drivers/staging/gdm724x/gdm_tty.c b/drivers/staging/gdm724x/gdm_tty.c index 6e81369..d6348df 100644 --- a/drivers/staging/gdm724x/gdm_tty.c +++ b/drivers/staging/gdm724x/gdm_tty.c @@ -62,6 +62,7 @@ static int gdm_tty_install(struct tty_driver *driver, struct tty_struct *tty) return -ENODEV;
mutex_lock(&gdm_table_lock); + gdm = gdm_table[ret][tty->index]; if (!gdm) { mutex_unlock(&gdm_table_lock); @@ -69,15 +70,9 @@ static int gdm_tty_install(struct tty_driver *driver, struct tty_struct *tty) }
tty_port_get(&gdm->port); - - ret = tty_standard_install(driver, tty); - if (ret) { - tty_port_put(&gdm->port); - mutex_unlock(&gdm_table_lock); - return ret; - } - + tty_standard_install(driver, tty); tty->driver_data = gdm; + mutex_unlock(&gdm_table_lock);
return 0;
Since tty_standard_install() always returns 0, the return type has changed to void. Now apply this and remove the obsolete error check.
Signed-off-by: Jaejoong Kim climbbb.kim@gmail.com --- drivers/staging/greybus/uart.c | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-)
diff --git a/drivers/staging/greybus/uart.c b/drivers/staging/greybus/uart.c index 8a00632..182155b 100644 --- a/drivers/staging/greybus/uart.c +++ b/drivers/staging/greybus/uart.c @@ -393,21 +393,15 @@ static void release_minor(struct gb_tty *gb_tty) static int gb_tty_install(struct tty_driver *driver, struct tty_struct *tty) { struct gb_tty *gb_tty; - int retval;
gb_tty = get_gb_by_minor(tty->index); if (!gb_tty) return -ENODEV;
- retval = tty_standard_install(driver, tty); - if (retval) - goto error; - + tty_standard_install(driver, tty); tty->driver_data = gb_tty; + return 0; -error: - tty_port_put(&gb_tty->port); - return retval; }
static int gb_tty_open(struct tty_struct *tty, struct file *file)
Since tty_standard_install() always returns 0, the return type has changed to void. Now apply this and remove the obsolete error check.
Signed-off-by: Jaejoong Kim climbbb.kim@gmail.com --- drivers/tty/nozomi.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-)
diff --git a/drivers/tty/nozomi.c b/drivers/tty/nozomi.c index fed820e..479583d 100644 --- a/drivers/tty/nozomi.c +++ b/drivers/tty/nozomi.c @@ -1555,13 +1555,11 @@ static int ntty_install(struct tty_driver *driver, struct tty_struct *tty) { struct port *port = get_port_by_tty(tty); struct nozomi *dc = get_dc_by_tty(tty); - int ret; if (!port || !dc || dc->state != NOZOMI_STATE_READY) return -ENODEV; - ret = tty_standard_install(driver, tty); - if (ret == 0) - tty->driver_data = port; - return ret; + tty_standard_install(driver, tty); + tty->driver_data = port; + return 0; }
static void ntty_cleanup(struct tty_struct *tty)
Since tty_standard_install() always returns 0, the return type has changed to void. Now apply this and remove the obsolete error check.
Signed-off-by: Jaejoong Kim climbbb.kim@gmail.com --- drivers/tty/vcc.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-)
diff --git a/drivers/tty/vcc.c b/drivers/tty/vcc.c index 58b454c..ce32631 100644 --- a/drivers/tty/vcc.c +++ b/drivers/tty/vcc.c @@ -987,7 +987,6 @@ static int vcc_install(struct tty_driver *driver, struct tty_struct *tty) { struct vcc_port *port_vcc; struct tty_port *port_tty; - int ret;
if (unlikely(!tty)) { pr_err("VCC: install: Invalid TTY handle\n"); @@ -997,9 +996,7 @@ static int vcc_install(struct tty_driver *driver, struct tty_struct *tty) if (tty->index >= VCC_MAX_PORTS) return -EINVAL;
- ret = tty_standard_install(driver, tty); - if (ret) - return ret; + tty_standard_install(driver, tty);
port_tty = kzalloc(sizeof(struct tty_port), GFP_KERNEL); if (!port_tty)
Since tty_standard_install() always returns 0, the return type has changed to void. Now apply this and remove the obsolete error check.
Signed-off-by: Jaejoong Kim climbbb.kim@gmail.com --- drivers/usb/class/cdc-acm.c | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-)
diff --git a/drivers/usb/class/cdc-acm.c b/drivers/usb/class/cdc-acm.c index 27346d6..de6a27e 100644 --- a/drivers/usb/class/cdc-acm.c +++ b/drivers/usb/class/cdc-acm.c @@ -572,23 +572,15 @@ static void acm_softint(struct work_struct *work) static int acm_tty_install(struct tty_driver *driver, struct tty_struct *tty) { struct acm *acm; - int retval;
acm = acm_get_by_minor(tty->index); if (!acm) return -ENODEV;
- retval = tty_standard_install(driver, tty); - if (retval) - goto error_init_termios; - + tty_standard_install(driver, tty); tty->driver_data = acm;
return 0; - -error_init_termios: - tty_port_put(&acm->port); - return retval; }
static int acm_tty_open(struct tty_struct *tty, struct file *filp)
Since tty_standard_install() always returns 0, the return type has changed to void. Now apply this and remove the obsolete error check.
Signed-off-by: Jaejoong Kim climbbb.kim@gmail.com --- drivers/usb/serial/usb-serial.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-)
diff --git a/drivers/usb/serial/usb-serial.c b/drivers/usb/serial/usb-serial.c index f7aaa7f..5cfc2ca 100644 --- a/drivers/usb/serial/usb-serial.c +++ b/drivers/usb/serial/usb-serial.c @@ -192,9 +192,7 @@ static int serial_install(struct tty_driver *driver, struct tty_struct *tty) if (retval) goto error_get_interface;
- retval = tty_standard_install(driver, tty); - if (retval) - goto error_init_termios; + tty_standard_install(driver, tty);
mutex_unlock(&serial->disc_mutex);
@@ -206,8 +204,6 @@ static int serial_install(struct tty_driver *driver, struct tty_struct *tty)
return retval;
- error_init_termios: - usb_autopm_put_interface(serial->interface); error_get_interface: module_put(serial->type->driver.owner); error_module_get:
Hi Jaejoong.
Change return type for tty functions. Patch No.01 tty: Change return type to void
Adding this patch first will generate a lot of warnings until all users are updated. It is usual practice to prepare all users and then apply the infrastructure changes as the last patch. Then people will not see a lot of warnings when they build something in the middle, and I guess current stack set may also generate a few mails from the 0-day build infrastructure.
isdn: i4l: isdn_tty: Change return type to void
And a nitpick on the patch description. This patch do not change any return type, but it ignore the return value og tty_part_install(). Same goes for all ramaining patches.
Sam
Hi,
Thanks for the review this.
On Tue, Sep 4, 2018 at 1:42 PM Sam Ravnborg sam@ravnborg.org wrote:
Hi Jaejoong.
Change return type for tty functions. Patch No.01 tty: Change return type to void
Adding this patch first will generate a lot of warnings until all users are updated. It is usual practice to prepare all users and then apply the infrastructure changes as the last patch. Then people will not see a lot of warnings when they build something in the middle, and I guess current stack set may also generate a few mails from the 0-day build infrastructure.
OK. i will make a patch#1(tty: Change return type to void) last.
isdn: i4l: isdn_tty: Change return type to void
And a nitpick on the patch description. This patch do not change any return type, but it ignore the return value og tty_part_install(). Same goes for all ramaining patches.
You are right. I will rewrite commit title with V2.
Jaejoong
Sam
On Tue, 4 Sep 2018 11:44:26 +0900 Jaejoong Kim climbbb.kim@gmail.com wrote:
Many drivers with tty use the tty_stand_install(). But, there is no need to handle the error, since it always returns 0.
And what happens if another change means it can fail again. It's just a property of the current implementation that it can't. It used to fail.
This seems to be a ton of unneccessary churn that will end up just having to be reversed again some day in the future.
Alan
Hi On Wed, Sep 12, 2018 at 11:41 PM Alan Cox gnomes@lxorguk.ukuu.org.uk wrote:
On Tue, 4 Sep 2018 11:44:26 +0900 Jaejoong Kim climbbb.kim@gmail.com wrote:
Many drivers with tty use the tty_stand_install(). But, there is no need to handle the error, since it always returns 0.
And what happens if another change means it can fail again. It's just a property of the current implementation that it can't. It used to fail.
This seems to be a ton of unneccessary churn that will end up just having to be reversed again some day in the future.
Hm. you maybe right if it has changes again with fail case. But, Is it better to modify it than to leave it because it can change later?
Jaejoong
Alan