Re: 2.6.24-git: kmap_atomic() WARN_ON()

Jeff Garzik
2008-02-26T16:32:56Z

Ingo Molnar wrote:
> * Jeff Garzik <jgarzik@pobox.com> wrote:
>
>> + unsigned long flags;
>> +
>> + local_irq_save(flags);
>
> hm, couldnt we attach the irq disabling to some spinlock, in a natural
> way? Explicit flags fiddling is a PITA once we do things like threaded
> irq handlers, -rt, etc.

Attaching the irq disabling to some spinlock is what would be
artificial... See the ahci.c patch earlier in this thread. It is taken
without spin_lock_irqsave() in the interrupt handler, and there is no
reason to disable interrupts for the entirety of the interrupt handler
run -- only the part where we call kmap.

This is only being done to satisfy kmap_atomic's requirements, not libata's.

I could add a "kmap lock" but that just seems silly.

Jeff