2018-09-04 02:46:25

by Jaejoong Kim

[permalink] [raw]
Subject: [PATCH 00/25] Change tty_port(standard)_install's return type

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(-)

--
2.7.4



2018-09-04 02:46:34

by Jaejoong Kim

[permalink] [raw]
Subject: [PATCH 03/25] s390: char: con3215: Change return type to void

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 <[email protected]>
---
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;
}

/*
--
2.7.4


2018-09-04 02:46:52

by Jaejoong Kim

[permalink] [raw]
Subject: [PATCH 04/25] s390: char: tty3270: Change return type to void

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 <[email protected]>
---
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;
--
2.7.4


2018-09-04 02:46:55

by Jaejoong Kim

[permalink] [raw]
Subject: [PATCH 05/25] tty: hvc: hvc_console: Change return type to void

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 <[email protected]>
---
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;
}

/*
--
2.7.4


2018-09-04 02:47:00

by Jaejoong Kim

[permalink] [raw]
Subject: [PATCH 06/25] tty: hvc: hvcs: Change return type to void

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 <[email protected]>
---
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);

--
2.7.4


2018-09-04 02:47:11

by Jaejoong Kim

[permalink] [raw]
Subject: [PATCH 08/25] tty: n_gsm: Change return type to void

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 <[email protected]>
---
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);
--
2.7.4


2018-09-04 02:47:23

by Jaejoong Kim

[permalink] [raw]
Subject: [PATCH 09/25] tty: serial: kgdb_nmi: Change return type to void

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 <[email protected]>
---
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)
--
2.7.4


2018-09-04 02:47:29

by Jaejoong Kim

[permalink] [raw]
Subject: [PATCH 10/25] tty: synclink: Change return type to void

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 <[email protected]>
---
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()
--
2.7.4


2018-09-04 02:47:29

by Jaejoong Kim

[permalink] [raw]
Subject: [PATCH 07/25] tty: mips_ejtag_fdc: Change return type to void

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 <[email protected]>
---
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)
--
2.7.4


2018-09-04 02:47:34

by Jaejoong Kim

[permalink] [raw]
Subject: [PATCH 12/25] tty: vt: Change return type to void

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 <[email protected]>
---
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;

--
2.7.4


2018-09-04 02:47:55

by Jaejoong Kim

[permalink] [raw]
Subject: [PATCH 11/25] tty: synclinkmp: Change return type to void

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 <[email protected]>
---
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.
--
2.7.4


2018-09-04 02:47:56

by Jaejoong Kim

[permalink] [raw]
Subject: [PATCH 16/25] isdn: capi: Change return type to void

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 <[email protected]>
---
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)
--
2.7.4


2018-09-04 02:48:17

by Jaejoong Kim

[permalink] [raw]
Subject: [PATCH 19/25] staging: fwserial: Change return type to void

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 <[email protected]>
---
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)
--
2.7.4


2018-09-04 02:48:45

by Jaejoong Kim

[permalink] [raw]
Subject: [PATCH 21/25] staging: greybus: uart: Change return type to void

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 <[email protected]>
---
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)
--
2.7.4


2018-09-04 02:48:46

by Jaejoong Kim

[permalink] [raw]
Subject: [PATCH 23/25] tty: vcc: Change return type to void

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 <[email protected]>
---
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)
--
2.7.4


2018-09-04 02:48:49

by Jaejoong Kim

[permalink] [raw]
Subject: [PATCH 24/25] usb: cdc-acm: Change return type to void

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 <[email protected]>
---
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)
--
2.7.4


2018-09-04 02:48:54

by Jaejoong Kim

[permalink] [raw]
Subject: [PATCH 22/25] tty: nozomi: Change return type to void

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 <[email protected]>
---
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)
--
2.7.4


2018-09-04 02:48:56

by Jaejoong Kim

[permalink] [raw]
Subject: [PATCH 25/25] usb: usb-serial: Change return type to void

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 <[email protected]>
---
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:
--
2.7.4


2018-09-04 02:49:33

by Jaejoong Kim

[permalink] [raw]
Subject: [PATCH 20/25] staging: gdm724x: gdm_tty: Change return type to void

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 <[email protected]>
---
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;
--
2.7.4


2018-09-04 02:49:36

by Jaejoong Kim

[permalink] [raw]
Subject: [PATCH 17/25] misc: pti: Change return type to void

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 <[email protected]>
---
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;
}

/**
--
2.7.4


2018-09-04 02:49:46

by Jaejoong Kim

[permalink] [raw]
Subject: [PATCH 15/25] um: Change return type to void

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 <[email protected]>
---
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;
--
2.7.4


2018-09-04 02:49:51

by Jaejoong Kim

[permalink] [raw]
Subject: [PATCH 14/25] Bluetooth: Change return type to void

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 <[email protected]>
---
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
--
2.7.4


2018-09-04 02:49:59

by Jaejoong Kim

[permalink] [raw]
Subject: [PATCH 13/25] usb: xhci: dbc: Change return type to void

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 <[email protected]>
---
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)
--
2.7.4


2018-09-04 02:50:30

by Jaejoong Kim

[permalink] [raw]
Subject: [PATCH 18/25] mmc: core: sdio_uart: Change return type to void

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 <[email protected]>
---
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;
}

/**
--
2.7.4


2018-09-04 02:51:24

by Jaejoong Kim

[permalink] [raw]
Subject: [PATCH 02/25] isdn: i4l: isdn_tty: Change return type to void

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 <[email protected]>
---
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;
}

/*
--
2.7.4


2018-09-04 02:51:27

by Jaejoong Kim

[permalink] [raw]
Subject: [PATCH 01/25] tty: Change return type to void

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 <[email protected]>
---
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);
--
2.7.4


2018-09-04 04:44:27

by Sam Ravnborg

[permalink] [raw]
Subject: Re: [PATCH 00/25] Change tty_port(standard)_install's return type

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

2018-09-04 10:46:45

by Sergei Shtylyov

[permalink] [raw]
Subject: Re: [PATCH 01/25] tty: Change return type to void

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 <[email protected]>
> ---
> 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

2018-09-05 05:58:53

by Jiri Slaby

[permalink] [raw]
Subject: Re: [PATCH 01/25] tty: Change return type to void

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,
--
js
suse labs

2018-09-12 14:44:33

by Alan Cox

[permalink] [raw]
Subject: Re: [PATCH 00/25] Change tty_port(standard)_install's return type

On Tue, 4 Sep 2018 11:44:26 +0900
Jaejoong Kim <[email protected]> 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