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

From: Haavard Skinnemoen
Date: Mon Feb 04 2008 - 15:26:01 EST


On Mon, 04 Feb 2008 20:01:26 +0100
michael <trimarchi@xxxxxxxxxxxxxxxx> wrote:

> I think the the atmel_interrupt handler
> must check the
> pass_counter before return IRQ_HANDLED.

I'm not sure if it helps in this particular case but yeah, since the
interrupt may be shared, it's definitely wrong to always return
IRQ_HANDLED.

Nice catch. Could you try the patch below?

Haavard

diff --git a/drivers/serial/atmel_serial.c b/drivers/serial/atmel_serial.c
index cb70cc5..f310a80 100644
--- a/drivers/serial/atmel_serial.c
+++ b/drivers/serial/atmel_serial.c
@@ -552,7 +552,7 @@ static irqreturn_t atmel_interrupt(int irq, void *dev_id)
atmel_handle_transmit(port, pending);
} while (pass_counter++ < ATMEL_ISR_PASS_LIMIT);

- return IRQ_HANDLED;
+ return pass_counter ? IRQ_HANDLED : IRQ_NONE;
}

/*
--
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/