Re: [PATCH -mm v4 6/9] atmel_serial: Split the interrupt handler

From: michael
Date: Mon Feb 04 2008 - 14:01:49 EST


Hi
Haavard

diff --git a/drivers/serial/atmel_serial.c b/drivers/serial/atmel_serial.c
index 477950f..c61fcc3 100644
--- a/drivers/serial/atmel_serial.c
+++ b/drivers/serial/atmel_serial.c
@@ -337,9 +337,12 @@ atmel_buffer_rx_char(struct uart_port *port, unsigned int status,
struct circ_buf *ring = &atmel_port->rx_ring;
struct atmel_uart_char *c;
- if (!CIRC_SPACE(ring->head, ring->tail, ATMEL_SERIAL_RINGSIZE))
+ if (!CIRC_SPACE(ring->head, ring->tail, ATMEL_SERIAL_RINGSIZE)) {
+ dev_err(port->dev, "RX ring buffer full, dropping data\n");
+
/* Buffer overflow, ignore char */
return;
+ }
c = &((struct atmel_uart_char *)ring->buf)[ring->head];
c->status = status;


I have already tried that but I have never seen the buffer full. So tomorrow I can do other
tests with the serial device. I think the the atmel_interrupt handler must check the
pass_counter before return IRQ_HANDLED.

Regards Michael


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/