From: "Jiri Slaby (SUSE)" <jirislaby@kernel.org>
To: gregkh@linuxfoundation.org
Cc: linux-serial@vger.kernel.org, linux-kernel@vger.kernel.org,
"Jiri Slaby (SUSE)" <jirislaby@kernel.org>
Subject: [PATCH 13/15] tty: early return from send_break() on TTY_DRIVER_HARDWARE_BREAK
Date: Tue, 19 Sep 2023 10:51:54 +0200 [thread overview]
Message-ID: <20230919085156.1578-14-jirislaby@kernel.org> (raw)
In-Reply-To: <20230919085156.1578-1-jirislaby@kernel.org>
If the driver sets TTY_DRIVER_HARDWARE_BREAK, we leave ops->break_ctl()
to the driver and return from send_break(). But we do it using a local
variable and keep the code flowing through the end of the function.
Instead, do 'return' immediately with the ops->break_ctl()'s return
value.
This way, we don't have to stuff the 'else' branch of the 'if' with the
software break handling. And we can re-indent the function too.
Signed-off-by: Jiri Slaby (SUSE) <jirislaby@kernel.org>
---
drivers/tty/tty_io.c | 32 +++++++++++++++++---------------
1 file changed, 17 insertions(+), 15 deletions(-)
diff --git a/drivers/tty/tty_io.c b/drivers/tty/tty_io.c
index 2ed12ca7c832..87bb5094e0bb 100644
--- a/drivers/tty/tty_io.c
+++ b/drivers/tty/tty_io.c
@@ -2475,22 +2475,24 @@ static int send_break(struct tty_struct *tty, unsigned int duration)
return 0;
if (tty->driver->flags & TTY_DRIVER_HARDWARE_BREAK)
- retval = tty->ops->break_ctl(tty, duration);
- else {
- /* Do the work ourselves */
- if (tty_write_lock(tty, false) < 0)
- return -EINTR;
- retval = tty->ops->break_ctl(tty, -1);
- if (retval)
- goto out;
- if (!signal_pending(current))
- msleep_interruptible(duration);
- retval = tty->ops->break_ctl(tty, 0);
+ return tty->ops->break_ctl(tty, duration);
+
+ /* Do the work ourselves */
+ if (tty_write_lock(tty, false) < 0)
+ return -EINTR;
+
+ retval = tty->ops->break_ctl(tty, -1);
+ if (retval)
+ goto out;
+ if (!signal_pending(current))
+ msleep_interruptible(duration);
+ retval = tty->ops->break_ctl(tty, 0);
out:
- tty_write_unlock(tty);
- if (signal_pending(current))
- retval = -EINTR;
- }
+ tty_write_unlock(tty);
+
+ if (signal_pending(current))
+ retval = -EINTR;
+
return retval;
}
--
2.42.0
next prev parent reply other threads:[~2023-09-19 8:53 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-09-19 8:51 [PATCH 00/15] random tty fixes Jiri Slaby (SUSE)
2023-09-19 8:51 ` [PATCH 01/15] tty: n_tty: use 'retval' instead of 'c' Jiri Slaby (SUSE)
2023-09-19 8:51 ` [PATCH 02/15] tty: n_tty: rename and retype 'retval' in n_tty_ioctl() Jiri Slaby (SUSE)
2023-09-19 8:51 ` [PATCH 03/15] tty: n_tty: use min3() in copy_from_read_buf() Jiri Slaby (SUSE)
2023-09-19 8:51 ` [PATCH 04/15] tty: n_tty: invert the condition " Jiri Slaby (SUSE)
2023-09-19 9:54 ` Ilpo Järvinen
2023-09-19 10:43 ` Jiri Slaby
2023-09-19 8:51 ` [PATCH 05/15] tty: n_tty: use do-while in n_tty_check_{,un}throttle() Jiri Slaby (SUSE)
2023-09-19 8:51 ` [PATCH 06/15] tty: switch tty_{,un}throttle_safe() to return a bool Jiri Slaby (SUSE)
2023-09-19 8:51 ` [PATCH 07/15] tty: invert return values of tty_{,un}throttle_safe() Jiri Slaby (SUSE)
2023-09-19 8:51 ` [PATCH 08/15] tty: fix up and plug in tty_ioctl kernel-doc Jiri Slaby (SUSE)
2023-09-19 8:51 ` [PATCH 09/15] tty: fix kernel-doc for functions in tty.h Jiri Slaby (SUSE)
2023-09-19 10:07 ` Ilpo Järvinen
2023-09-19 10:45 ` Jiri Slaby
2023-09-19 10:47 ` Jiri Slaby
2023-09-19 10:51 ` Ilpo Järvinen
2023-09-19 8:51 ` [PATCH 10/15] tty: stop using ndash in kernel-doc Jiri Slaby (SUSE)
2023-09-19 8:51 ` [PATCH 11/15] tty: tty_buffer: use bool for 'restart' in tty_buffer_unlock_exclusive() Jiri Slaby (SUSE)
2023-09-19 8:51 ` [PATCH 12/15] tty: convert THROTTLE constants into enum Jiri Slaby (SUSE)
2023-09-19 10:10 ` Ilpo Järvinen
2023-09-19 10:51 ` Jiri Slaby
2023-09-19 8:51 ` Jiri Slaby (SUSE) [this message]
2023-09-19 8:51 ` [PATCH 14/15] tty: don't check for signal_pending() in send_break() Jiri Slaby (SUSE)
2023-09-19 10:14 ` Ilpo Järvinen
2023-09-19 8:51 ` [PATCH 15/15] tty: use 'if' in send_break() instead of 'goto' Jiri Slaby (SUSE)
2023-09-19 10:17 ` [PATCH 00/15] random tty fixes Ilpo Järvinen
2023-09-19 10:21 ` Greg Kroah-Hartman
2023-09-19 10:53 ` Ilpo Järvinen
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20230919085156.1578-14-jirislaby@kernel.org \
--to=jirislaby@kernel.org \
--cc=gregkh@linuxfoundation.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-serial@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.