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

From: Haavard Skinnemoen
Date: Wed Jan 30 2008 - 10:46:46 EST


On Wed, 30 Jan 2008 16:26:27 +0100
michael <trimarchi@xxxxxxxxxxxxxxxx> wrote:

> > I have no idea. Could you post some more specifics about what you
> > modified, for example a diff?
> >
> >
>
> ...
> /* The interrupt handler does not take the lock */
> spin_lock_irqsave(&port->lock, flags);
> atmel_tx_chars(port);
> spin_unlock_irqrestore(&port->lock, flags);

Sorry, this isn't going to work.

Please post a diff with the changes you did to the driver, and whatever
output you got when it crashed.

It's really difficult to help you when I don't know (a) what code
you're actually running, or (b) anything about the crash.

> The atmel_tx_chars using the serial device registers like the interrupt
> routine
> and so I think that it is possible to have interference during send
> operation.

No, it's only called from the tasklet, and the interrupt handler doesn't
touch the TX data register. There shouldn't be any need to disable
interrupts around the call to atmel_tx_chars(). In fact, this may very
well be the cause of the overruns you're seeing.

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