lkml.org 
[lkml]   [2008]   [Jan]   [30]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
DateThu, 31 Jan 2008 02:53:50 +0100
Frommichael <>
SubjectRe: [PATCH -mm v4 6/9] atmel_serial: Split the interrupt handler
Hi,
Haavard Skinnemoen wrote:
> On Wed, 30 Jan 2008 16:26:27 +0100
> michael <trimarchi@gandalf.sssup.it> 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.
>
>
Ok, but the problem is that I have some added code for using the uart with
smart card in iso mode, (is never called) and the patch is not so clean.
Now I return to the original patch without the spin_lock_irqsave and with
the fix of buffer allocation,and I don't see the crash anymore.
In full preemptive all works with threading hardirqs and sofirqs. I will
do other testing before posting again.
>> 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
>
>
The overrun still remain. An lrz receive session is impossible using
full preemption. I will try the dma patch too and test in iso mode for
smart card.

Thanks


\
 
 \ /
  Last update: 2008-01-31 02:57    [from the cache]
©2003-2010