>> One question, as I review this code myself -- I put a spinlock to
>> protect the enable/disable of the clocks, but I'm not sure that has
>> turned out to be necessary.  The register in question is never touched
>> inside the IRQ handler, so I think it is unnecessary.  If someone can
>> confirm that it's safe to remove that spinlock, I'll clean that bit out.
>>
>
> I agree, the ISR doesn't touch the register... but it schedules
> pio_tasklet, which does.  Can pio_tasklet be scheduled ahead of the
> interrupted task in this case?

According to Rusty's Locking Guide, you should use spin_lock_bh() to
protect against being run over by a tasklet.  I think this applies in
your case.

/Jonas

Reply via email to