lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [day] [month] [year] [list]
Date:	Fri, 1 Dec 2006 02:18:02 +0100
From:	Lennert Buytenhek <buytenh@...tstofly.org>
To:	akpm@...l.org
Cc:	linux@....linux.org.uk, linux-kernel@...r.kernel.org
Subject: [PATCH] amba-pl010: clear error flags on rx error

The pl010 primecell documentation specifies that an error indicated via
RSR should be cleared by a write to ECR.  We didn't do this, which was
causing errors to be re-reported on every call to pl010_rx_chars().

Doing a write to ECR once we detect an error appears to prevent the
ep93xx console UART driver from going into a mode where it reports
"ttyAM0: X input overrun(s)" every couple of keystrokes.

Signed-off-by: Lennert Buytenhek <buytenh@...tstofly.org>

Index: linux-2.6.19-rc5/drivers/serial/amba-pl010.c
===================================================================
--- linux-2.6.19-rc5.orig/drivers/serial/amba-pl010.c
+++ linux-2.6.19-rc5/drivers/serial/amba-pl010.c
@@ -129,6 +129,8 @@ static void pl010_rx_chars(struct uart_p
 		 */
 		rsr = readb(port->membase + UART01x_RSR) | UART_DUMMY_RSR_RX;
 		if (unlikely(rsr & UART01x_RSR_ANY)) {
+			writel(0, port->membase + UART01x_ECR);
+
 			if (rsr & UART01x_RSR_BE) {
 				rsr &= ~(UART01x_RSR_FE | UART01x_RSR_PE);
 				port->icount.brk++;
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ