From: Greg Kroah-Hartman <gregkh@suse.de>
To: linux-serial@vger.kernel.org
Cc: Stephen Boyd <sboyd@codeaurora.org>,
stable <stable@vger.kernel.org>,
Greg Kroah-Hartman <gregkh@suse.de>
Subject: [PATCH 02/13] tty: hvc_dcc: Fix duplicate character inputs
Date: Mon, 21 Nov 2011 17:11:32 -0800 [thread overview]
Message-ID: <1321924303-26475-2-git-send-email-gregkh@suse.de> (raw)
In-Reply-To: <1321924303-26475-1-git-send-email-gregkh@suse.de>
From: Stephen Boyd <sboyd@codeaurora.org>
Reading from the DCC grabs a character from the buffer and
clears the status bit. Since this is a context-changing
operation, instructions following the character read that rely on
the status bit being accurate need to be synchronized with an
ISB.
In this case, the status bit check needs to execute after the
character read otherwise we run the risk of reading the character
and checking the status bit before the read can clear the status
bit in the first place. When this happens, the user will see the
same character they typed twice, instead of once.
Add an ISB after the read and the write, so that the status check
is synchronized with the read/write operations.
Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
Cc: stable <stable@vger.kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
---
drivers/tty/hvc/hvc_dcc.c | 2 ++
1 files changed, 2 insertions(+), 0 deletions(-)
diff --git a/drivers/tty/hvc/hvc_dcc.c b/drivers/tty/hvc/hvc_dcc.c
index 435f6fa..44fbeba 100644
--- a/drivers/tty/hvc/hvc_dcc.c
+++ b/drivers/tty/hvc/hvc_dcc.c
@@ -46,6 +46,7 @@ static inline char __dcc_getchar(void)
asm volatile("mrc p14, 0, %0, c0, c5, 0 @ read comms data reg"
: "=r" (__c));
+ isb();
return __c;
}
@@ -55,6 +56,7 @@ static inline void __dcc_putchar(char c)
asm volatile("mcr p14, 0, %0, c0, c5, 0 @ write a char"
: /* no output register */
: "r" (c));
+ isb();
}
static int hvc_dcc_put_chars(uint32_t vt, const char *buf, int count)
--
1.7.7.3
next prev parent reply other threads:[~2011-11-22 1:12 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-11-22 0:59 [GIT PATCH] TTY/serial driver fixes for 3.2 Greg KH
2011-11-22 1:11 ` [PATCH 01/13] jsm: Change maintainership Greg Kroah-Hartman
2011-11-22 1:11 ` Greg Kroah-Hartman [this message]
2011-11-22 1:11 ` [PATCH 03/13] pch_uart: Fix hw-flow control issue Greg Kroah-Hartman
2011-11-22 1:11 ` [PATCH 04/13] pch_uart: Support new device LAPIS Semiconductor ML7831 IOH Greg Kroah-Hartman
2011-11-22 1:11 ` [PATCH 05/13] pch_uart: Change company name OKI SEMICONDUCTOR to LAPIS Semiconductor Greg Kroah-Hartman
2011-11-22 1:11 ` [PATCH 06/13] tty/serial: Prevent drop of DCD on suspend for Tegra UARTs Greg Kroah-Hartman
2011-11-22 1:11 ` [PATCH 07/13] serial,mfd: Fix CMSPAR setup Greg Kroah-Hartman
2011-11-22 1:11 ` [PATCH 08/13] pch_uart: Fix DMA resource leak issue Greg Kroah-Hartman
2011-11-22 1:11 ` [PATCH 09/13] RS485: fix inconsistencies in the meaning of some variables Greg Kroah-Hartman
2011-11-22 1:11 ` [PATCH 10/13] Revert "tty/serial: Prevent drop of DCD on suspend for Tegra UARTs" Greg Kroah-Hartman
2011-11-22 1:11 ` [PATCH 11/13] TTY: ldisc, allow waiting for ldisc arbitrarily long Greg Kroah-Hartman
2011-11-22 1:11 ` [PATCH 12/13] TTY: ldisc, move wait idle to caller Greg Kroah-Hartman
2011-11-22 1:11 ` [PATCH 13/13] TTY: ldisc, wait for ldisc infinitely in hangup Greg Kroah-Hartman
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=1321924303-26475-2-git-send-email-gregkh@suse.de \
--to=gregkh@suse.de \
--cc=linux-serial@vger.kernel.org \
--cc=sboyd@codeaurora.org \
--cc=stable@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 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).