Commit 45849282 authored by Russell King's avatar Russell King

[PATCH] Serial: Ensure error paths are marked with unlikely()

Ensure ARM serial driver error paths are marked with the
unlikely() compiler hint.
Signed-off-by: default avatarRussell King <rmk@arm.linux.org.uk>
parent b453257f
...@@ -110,7 +110,7 @@ static irqreturn_t serial21285_rx_chars(int irq, void *dev_id, struct pt_regs *r ...@@ -110,7 +110,7 @@ static irqreturn_t serial21285_rx_chars(int irq, void *dev_id, struct pt_regs *r
port->icount.rx++; port->icount.rx++;
rxs = *CSR_RXSTAT | RXSTAT_DUMMY_READ; rxs = *CSR_RXSTAT | RXSTAT_DUMMY_READ;
if (rxs & RXSTAT_ANYERR) { if (unlikely(rxs & RXSTAT_ANYERR)) {
if (rxs & RXSTAT_PARITY) if (rxs & RXSTAT_PARITY)
port->icount.parity++; port->icount.parity++;
else if (rxs & RXSTAT_FRAME) else if (rxs & RXSTAT_FRAME)
......
...@@ -172,7 +172,7 @@ pl010_rx_chars(struct uart_port *port) ...@@ -172,7 +172,7 @@ pl010_rx_chars(struct uart_port *port)
* out of the main execution path * out of the main execution path
*/ */
rsr = UART_GET_RSR(port) | UART_DUMMY_RSR_RX; rsr = UART_GET_RSR(port) | UART_DUMMY_RSR_RX;
if (rsr & UART01x_RSR_ANY) { if (unlikely(rsr & UART01x_RSR_ANY)) {
if (rsr & UART01x_RSR_BE) { if (rsr & UART01x_RSR_BE) {
rsr &= ~(UART01x_RSR_FE | UART01x_RSR_PE); rsr &= ~(UART01x_RSR_FE | UART01x_RSR_PE);
port->icount.brk++; port->icount.brk++;
......
...@@ -137,7 +137,7 @@ pl011_rx_chars(struct uart_amba_port *uap) ...@@ -137,7 +137,7 @@ pl011_rx_chars(struct uart_amba_port *uap)
* out of the main execution path * out of the main execution path
*/ */
rsr = readw(uap->port.membase + UART01x_RSR) | UART_DUMMY_RSR_RX; rsr = readw(uap->port.membase + UART01x_RSR) | UART_DUMMY_RSR_RX;
if (rsr & UART01x_RSR_ANY) { if (unlikely(rsr & UART01x_RSR_ANY)) {
if (rsr & UART01x_RSR_BE) { if (rsr & UART01x_RSR_BE) {
rsr &= ~(UART01x_RSR_FE | UART01x_RSR_PE); rsr &= ~(UART01x_RSR_FE | UART01x_RSR_PE);
uap->port.icount.brk++; uap->port.icount.brk++;
......
...@@ -116,7 +116,7 @@ static irqreturn_t clps711xuart_int_rx(int irq, void *dev_id, struct pt_regs *re ...@@ -116,7 +116,7 @@ static irqreturn_t clps711xuart_int_rx(int irq, void *dev_id, struct pt_regs *re
* Note that the error handling code is * Note that the error handling code is
* out of the main execution path * out of the main execution path
*/ */
if (ch & UART_ANY_ERR) if (unlikely(ch & UART_ANY_ERR))
goto handle_error; goto handle_error;
if (uart_handle_sysrq_char(port, ch, regs)) if (uart_handle_sysrq_char(port, ch, regs))
......
...@@ -364,7 +364,7 @@ s3c24xx_serial_rx_chars(int irq, void *dev_id, struct pt_regs *regs) ...@@ -364,7 +364,7 @@ s3c24xx_serial_rx_chars(int irq, void *dev_id, struct pt_regs *regs)
flag = TTY_NORMAL; flag = TTY_NORMAL;
port->icount.rx++; port->icount.rx++;
if (uerstat & S3C2410_UERSTAT_ANY) { if (unlikely(uerstat & S3C2410_UERSTAT_ANY)) {
dbg("rxerr: port ch=0x%02x, rxs=0x%08x\n", dbg("rxerr: port ch=0x%02x, rxs=0x%08x\n",
ch, uerstat); ch, uerstat);
......
...@@ -162,7 +162,7 @@ lh7a40xuart_rx_chars (struct uart_port* port) ...@@ -162,7 +162,7 @@ lh7a40xuart_rx_chars (struct uart_port* port)
flag = TTY_NORMAL; flag = TTY_NORMAL;
++port->icount.rx; ++port->icount.rx;
if (data & RxError) { /* Quick check, short-circuit */ if (unlikely(data & RxError)) { /* Quick check, short-circuit */
if (data & RxBreak) { if (data & RxBreak) {
data &= ~(RxFramingError | RxParityError); data &= ~(RxFramingError | RxParityError);
++port->icount.brk; ++port->icount.brk;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment