From: akpm@linux-foundation.org
To: joe@skyrush.com, alan@lxorguk.ukuu.org.uk, mm-commits@vger.kernel.org
Subject: - tty-minor-code-efficiency-and-style-cleanup.patch removed from -mm tree
Date: Tue, 07 Oct 2008 16:37:34 -0700 [thread overview]
Message-ID: <200810072337.m97NbYIL009397@imap1.linux-foundation.org> (raw)
The patch titled
tty: minor code efficiency and style cleanup
has been removed from the -mm tree. Its filename was
tty-minor-code-efficiency-and-style-cleanup.patch
This patch was dropped because of rejects
The current -mm tree may be found at http://userweb.kernel.org/~akpm/mmotm/
------------------------------------------------------
Subject: tty: minor code efficiency and style cleanup
From: Joe Peterson <joe@skyrush.com>
No behavior changes.
Signed-off-by: Joe Peterson <joe@skyrush.com>
Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
---
drivers/char/n_tty.c | 61 +++++++++++++++++++++--------------------
1 file changed, 32 insertions(+), 29 deletions(-)
diff -puN drivers/char/n_tty.c~tty-minor-code-efficiency-and-style-cleanup drivers/char/n_tty.c
--- a/drivers/char/n_tty.c~tty-minor-code-efficiency-and-style-cleanup
+++ a/drivers/char/n_tty.c
@@ -465,11 +465,11 @@ break_out:
/**
- * process_echoes - write pending echoed characters
+ * process_echoes - write pending echo characters
* @tty: terminal device
*
- * Write echoed (and other ldisc-generated) characters to the
- * tty that have been stored previously in the echo buffer.
+ * Write previously buffered echo (and other ldisc-generated)
+ * characters to the tty.
*
* Characters generated by the ldisc (including echoes) need to
* be buffered because the driver's write buffer can fill during
@@ -498,11 +498,11 @@ break_out:
static void process_echoes(struct tty_struct *tty)
{
- int space, num, nr;
+ int space, nr;
unsigned char c;
unsigned char *cp, *buf_end;
- if (!(num = tty->echo_cnt))
+ if (!tty->echo_cnt)
return;
lock_kernel();
@@ -511,7 +511,7 @@ static void process_echoes(struct tty_st
buf_end = tty->echo_buf + N_TTY_BUF_SIZE;
cp = tty->echo_buf + tty->echo_pos;
- nr = num;
+ nr = tty->echo_cnt;
while (nr > 0) {
c = *cp;
if (c == ECHO_OP_START) {
@@ -645,14 +645,15 @@ static void process_echoes(struct tty_st
cp -= N_TTY_BUF_SIZE;
}
- tty->echo_cnt = nr;
- if (tty->echo_cnt == 0) {
+ if (nr == 0) {
tty->echo_pos = 0;
+ tty->echo_cnt = 0;
tty->echo_overrun = 0;
} else {
- int num_processed = (num - nr);
+ int num_processed = tty->echo_cnt - nr;
tty->echo_pos += num_processed;
- tty->echo_pos &= (N_TTY_BUF_SIZE - 1);
+ tty->echo_pos &= N_TTY_BUF_SIZE - 1;
+ tty->echo_cnt = nr;
if (num_processed > 0)
tty->echo_overrun = 0;
}
@@ -673,42 +674,43 @@ static void process_echoes(struct tty_st
static void add_echo_byte(unsigned char c, struct tty_struct *tty)
{
- int add_char_pos;
+ int new_byte_pos;
unsigned long flags;
spin_lock_irqsave(&tty->echo_lock, flags);
- add_char_pos = tty->echo_pos + tty->echo_cnt;
- if (add_char_pos >= N_TTY_BUF_SIZE)
- add_char_pos -= N_TTY_BUF_SIZE;
-
- /* Detect overrun */
if (tty->echo_cnt == N_TTY_BUF_SIZE) {
+ /* Circular buffer is already at capacity */
+ new_byte_pos = tty->echo_pos;
+
/*
- * If the start position pointer needs to be advanced
- * due to running out of buffer space, be sure it is
- * done in such a way as to remove whole
- * operation byte groups.
+ * Since the buffer start position needs to be advanced,
+ * be sure to step by a whole operation byte group.
*/
- if (*(tty->echo_buf +
- (tty->echo_pos & (N_TTY_BUF_SIZE - 1))) == ECHO_OP_START)
+ if (tty->echo_buf[tty->echo_pos] == ECHO_OP_START)
{
- if (*(tty->echo_buf +
- ((tty->echo_pos + 1) & (N_TTY_BUF_SIZE - 1))) == ECHO_OP_TAB_ERASE) {
+ if (tty->echo_buf[(tty->echo_pos + 1) &
+ (N_TTY_BUF_SIZE - 1)] ==
+ ECHO_OP_TAB_ERASE) {
tty->echo_pos += 4;
tty->echo_cnt -= 3;
} else {
tty->echo_pos += 2;
tty->echo_cnt -= 1;
}
- } else
+ } else {
tty->echo_pos++;
- tty->echo_pos &= (N_TTY_BUF_SIZE - 1);
+ }
+ tty->echo_pos &= N_TTY_BUF_SIZE - 1;
+
tty->echo_overrun = 1;
- } else
+ } else {
+ new_byte_pos = tty->echo_pos + tty->echo_cnt;
+ new_byte_pos &= N_TTY_BUF_SIZE - 1;
tty->echo_cnt++;
+ }
- tty->echo_buf[add_char_pos] = c;
+ tty->echo_buf[new_byte_pos] = c;
spin_unlock_irqrestore(&tty->echo_lock, flags);
}
@@ -772,8 +774,9 @@ static void echo_char_raw(unsigned char
if (c == ECHO_OP_START) {
add_echo_byte(ECHO_OP_START, tty);
add_echo_byte(ECHO_OP_START, tty);
- } else
+ } else {
add_echo_byte(c, tty);
+ }
}
/**
_
Patches currently in -mm which might be from joe@skyrush.com are
tty-minor-code-efficiency-and-style-cleanup.patch
tty-fix-echo-tab-erase-and-locking.patch
tty-fix-echo-tab-erase-and-locking-fix.patch
reply other threads:[~2008-10-07 23:37 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
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=200810072337.m97NbYIL009397@imap1.linux-foundation.org \
--to=akpm@linux-foundation.org \
--cc=alan@lxorguk.ukuu.org.uk \
--cc=joe@skyrush.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mm-commits@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.