if (rxs & RXSTAT_ANYERR) { 
if (unlikely(rxs & RXSTAT_ANYERR)) { 
static irqreturn_t serial21285_rx_chars(int irq, void *dev_id, struct pt_regs *regs){	struct uart_port *port = dev_id;	struct tty_struct *tty = port->info->tty;	unsigned int status, ch, flag, rxs, max_count = 256;	status = *CSR_UARTFLG;	while (!(status & 0x10) && max_count--) {		if (tty->flip.count >= TTY_FLIPBUF_SIZE) {			if (tty->low_latency)				tty_flip_buffer_push(tty);			/*			 * If this failed then we will throw away the			 * bytes but must do so to clear interrupts			 */		}		ch = *CSR_UARTDR;		flag = TTY_NORMAL;		port->icount.rx++;		rxs = *CSR_RXSTAT | RXSTAT_DUMMY_READ;		if (rxs & RXSTAT_ANYERR) {			if (rxs & RXSTAT_PARITY)				port->icount.parity++;			else if (rxs & RXSTAT_FRAME)				port->icount.frame++;			if (rxs & RXSTAT_OVERRUN)				port->icount.overrun++;			rxs &= port->read_status_mask;			if (rxs & RXSTAT_PARITY)				flag = TTY_PARITY;			else if (rxs & RXSTAT_FRAME)				flag = TTY_FRAME;		}		if ((rxs & port->ignore_status_mask) == 0) {			tty_insert_flip_char(tty, ch, flag);		}		if ((rxs & RXSTAT_OVERRUN) &&		    tty->flip.count < TTY_FLIPBUF_SIZE) {			/*			 * Overrun is special, since it's reported			 * immediately, and doesn't affect the current			 * character.			 */			tty_insert_flip_char(tty, 0, TTY_OVERRUN);		}		status = *CSR_UARTFLG;	}	tty_flip_buffer_push(tty);	return IRQ_HANDLED;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/45849282bfd7543253761cbf7db96151b05e5ed1/21285.c/buggy/drivers/serial/21285.c