linux-alpha.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 21/31] tty: srmcons: fix retval from srmcons_init()
       [not found] <20250317070046.24386-1-jirislaby@kernel.org>
@ 2025-03-17  7:00 ` Jiri Slaby (SUSE)
  2025-03-17  7:03 ` [PATCH v2 00/31] tty: cleanup no. 99 Jiri Slaby
  1 sibling, 0 replies; 2+ messages in thread
From: Jiri Slaby (SUSE) @ 2025-03-17  7:00 UTC (permalink / raw)
  To: gregkh
  Cc: linux-serial, linux-kernel, Jiri Slaby (SUSE), Magnus Lindholm,
	Richard Henderson, Matt Turner, linux-alpha

The value returned from srmcons_init() was -ENODEV for over 2 decades.
But it does not matter, given device_initcall() ignores retvals.

But to be honest, return 0 in case the tty driver was registered
properly.

To do that, the condition is inverted and a short path taken in case of
error.

err_free_drv is introduced as it will be used from more places later.

Signed-off-by: Jiri Slaby (SUSE) <jirislaby@kernel.org>
Tested-by: Magnus Lindholm <linmag7@gmail.com>
Cc: Richard Henderson <richard.henderson@linaro.org>
Cc: Matt Turner <mattst88@gmail.com>
Cc: linux-alpha@vger.kernel.org
---
 arch/alpha/kernel/srmcons.c | 62 ++++++++++++++++++++-----------------
 1 file changed, 33 insertions(+), 29 deletions(-)

diff --git a/arch/alpha/kernel/srmcons.c b/arch/alpha/kernel/srmcons.c
index 3e61073f4b30..b9cd364e814e 100644
--- a/arch/alpha/kernel/srmcons.c
+++ b/arch/alpha/kernel/srmcons.c
@@ -196,40 +196,44 @@ static const struct tty_operations srmcons_ops = {
 static int __init
 srmcons_init(void)
 {
+	struct tty_driver *driver;
+	int err;
+
 	timer_setup(&srmcons_singleton.timer, srmcons_receive_chars, 0);
-	if (srm_is_registered_console) {
-		struct tty_driver *driver;
-		int err;
-
-		driver = tty_alloc_driver(MAX_SRM_CONSOLE_DEVICES, 0);
-		if (IS_ERR(driver))
-			return PTR_ERR(driver);
-
-		tty_port_init(&srmcons_singleton.port);
-
-		driver->driver_name = "srm";
-		driver->name = "srm";
-		driver->major = 0; 	/* dynamic */
-		driver->minor_start = 0;
-		driver->type = TTY_DRIVER_TYPE_SYSTEM;
-		driver->subtype = SYSTEM_TYPE_SYSCONS;
-		driver->init_termios = tty_std_termios;
-		tty_set_operations(driver, &srmcons_ops);
-		tty_port_link_device(&srmcons_singleton.port, driver, 0);
-		err = tty_register_driver(driver);
-		if (err) {
-			tty_driver_kref_put(driver);
-			tty_port_destroy(&srmcons_singleton.port);
-			return err;
-		}
-		srmcons_driver = driver;
-	}
 
-	return -ENODEV;
+	if (!srm_is_registered_console)
+		return -ENODEV;
+
+	driver = tty_alloc_driver(MAX_SRM_CONSOLE_DEVICES, 0);
+	if (IS_ERR(driver))
+		return PTR_ERR(driver);
+
+	tty_port_init(&srmcons_singleton.port);
+
+	driver->driver_name = "srm";
+	driver->name = "srm";
+	driver->major = 0;	/* dynamic */
+	driver->minor_start = 0;
+	driver->type = TTY_DRIVER_TYPE_SYSTEM;
+	driver->subtype = SYSTEM_TYPE_SYSCONS;
+	driver->init_termios = tty_std_termios;
+	tty_set_operations(driver, &srmcons_ops);
+	tty_port_link_device(&srmcons_singleton.port, driver, 0);
+	err = tty_register_driver(driver);
+	if (err)
+		goto err_free_drv;
+
+	srmcons_driver = driver;
+
+	return 0;
+err_free_drv:
+	tty_driver_kref_put(driver);
+	tty_port_destroy(&srmcons_singleton.port);
+
+	return err;
 }
 device_initcall(srmcons_init);
 
-\f
 /*
  * The console driver
  */
-- 
2.49.0


^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [PATCH v2 00/31] tty: cleanup no. 99
       [not found] <20250317070046.24386-1-jirislaby@kernel.org>
  2025-03-17  7:00 ` [PATCH v2 21/31] tty: srmcons: fix retval from srmcons_init() Jiri Slaby (SUSE)
@ 2025-03-17  7:03 ` Jiri Slaby
  1 sibling, 0 replies; 2+ messages in thread
From: Jiri Slaby @ 2025-03-17  7:03 UTC (permalink / raw)
  To: gregkh
  Cc: linux-serial, linux-kernel, Alex Elder, Andrew Lunn,
	Andy Shevchenko, David Lin, David S. Miller, Eric Dumazet,
	greybus-dev, Ilpo Järvinen, Jakub Kicinski, Johan Hovold,
	linux-alpha, linux-mmc, linux-staging, Matt Turner, netdev,
	Paolo Abeni, Richard Henderson, Rob Herring, sparclinux,
	Ulf Hansson

Cc (sorry):
Alex Elder <elder@kernel.org>
Andrew Lunn <andrew+netdev@lunn.ch>
Andy Shevchenko <andriy.shevchenko@linux.intel.com>
David Lin <dtwlin@gmail.com>
"David S. Miller" <davem@davemloft.net>
Eric Dumazet <edumazet@google.com>
greybus-dev@lists.linaro.org
"Ilpo Järvinen" <ilpo.jarvinen@linux.intel.com>
Jakub Kicinski <kuba@kernel.org>
Johan Hovold <johan@kernel.org>
linux-alpha@vger.kernel.org
linux-mmc@vger.kernel.org
linux-staging@lists.linux.dev
Matt Turner <mattst88@gmail.com>
netdev@vger.kernel.org
Paolo Abeni <pabeni@redhat.com>
Richard Henderson <richard.henderson@linaro.org>
Rob Herring <robh@kernel.org>
sparclinux@vger.kernel.org
Ulf Hansson <ulf.hansson@linaro.org>

On 17. 03. 25, 8:00, Jiri Slaby (SUSE) wrote:
> Hi,
> 
> this is (again) a series of cleanup in tty. I am trying to rework
> tty+serial to avoid limitations of devices (so called NR_UART or
> tty_alloc_driver()'s first parameter). And the below popped up while
> crawling through the code. So this is only a prep cleanup.
> 
> * many tty flags are now enums
> * many functions were improved for readability
> * quite a few unused or old code dropped
> 
> In particular, the runtime behaviour of the kernel before and after the
> changes is supposed to be bug to bug compatible (except moxa's ioctl
> and ISA evils dropped). That is, noone should notice.
> 
> [v2]
>   * use serial_port_in/out() helpers in 26/30 (and not use serial_in/out())
>   * the last patch is new
> 
> Jiri Slaby (SUSE) (31):
>    tty: convert "TTY Struct Flags" to an enum
>    tty: audit: do not use N_TTY_BUF_SIZE
>    tty: caif: do not use N_TTY_BUF_SIZE
>    tty: move N_TTY_BUF_SIZE to n_tty
>    tty: n_tty: use uint for space returned by tty_write_room()
>    tty: n_tty: simplify process_output()
>    tty: n_tty: clean up process_output_block()
>    tty: n_tty: drop n_tty_trace()
>    tty: n_tty: extract n_tty_continue_cookie() from n_tty_read()
>    tty: n_tty: extract n_tty_wait_for_input()
>    tty: n_tty: move more_to_be_read to the end of n_tty_read()
>    tty: tty_driver: move TTY macros to the top
>    tty: tty_driver: convert "TTY Driver Flags" to an enum
>    tty: tty_driver: document both {,__}tty_alloc_driver() properly
>    tty: tty_driver: introduce TTY driver sub/types enums
>    tty: serdev: drop serdev_controller_ops::write_room()
>    tty: mmc: sdio: use bool for cts and remove parentheses
>    tty: moxa: drop version dump to logs
>    tty: moxa: drop ISA support
>    tty: moxa: carve out special ioctls and extra tty_port
>    tty: srmcons: fix retval from srmcons_init()
>    tty: staging/greybus: pass tty_driver flags to tty_alloc_driver()
>    tty: sunsu: drop serial_{in,out}p()
>    tty: sunsu: remove unused serial_icr_read()
>    serial: remove redundant tty_port_link_device()
>    serial: pass struct uart_state to uart_line_info()
>    serial: 8250: use serial_port_in/out() helpers
>    serial: 8250_rsa: simplify rsa8250_{request/release}_resource()
>    serial: 8250_port: do not use goto for UPQ_NO_TXEN_TEST code flow
>    serial: 8250_port: simplify serial8250_request_std_resource()
>    serial: switch change_irq and change_port to bool in uart_set_info()
> 
>   Documentation/driver-api/tty/tty_driver.rst |   4 +-
>   Documentation/driver-api/tty/tty_struct.rst |   2 +-
>   arch/alpha/kernel/srmcons.c                 |  62 ++---
>   drivers/mmc/core/sdio_uart.c                |   2 +-
>   drivers/net/caif/caif_serial.c              |   2 +-
>   drivers/staging/greybus/uart.c              |   4 +-
>   drivers/tty/Kconfig                         |   2 +-
>   drivers/tty/moxa.c                          | 251 +-------------------
>   drivers/tty/n_tty.c                         | 212 ++++++++---------
>   drivers/tty/serdev/core.c                   |  11 -
>   drivers/tty/serdev/serdev-ttyport.c         |   9 -
>   drivers/tty/serial/8250/8250_dw.c           |  16 +-
>   drivers/tty/serial/8250/8250_fsl.c          |   8 +-
>   drivers/tty/serial/8250/8250_omap.c         |   2 +-
>   drivers/tty/serial/8250/8250_port.c         |  59 ++---
>   drivers/tty/serial/8250/8250_rsa.c          |  21 +-
>   drivers/tty/serial/serial_core.c            |  10 +-
>   drivers/tty/serial/sunsu.c                  | 178 ++++++--------
>   drivers/tty/tty_audit.c                     |  10 +-
>   drivers/tty/tty_io.c                        |   8 +-
>   include/linux/serdev.h                      |   6 -
>   include/linux/tty.h                         |  53 +++--
>   include/linux/tty_driver.h                  | 180 +++++++-------
>   23 files changed, 412 insertions(+), 700 deletions(-)
> 


-- 
js
suse labs

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2025-03-17  7:03 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <20250317070046.24386-1-jirislaby@kernel.org>
2025-03-17  7:00 ` [PATCH v2 21/31] tty: srmcons: fix retval from srmcons_init() Jiri Slaby (SUSE)
2025-03-17  7:03 ` [PATCH v2 00/31] tty: cleanup no. 99 Jiri Slaby

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).