Messages in this thread | | | Date | Tue, 26 Feb 2008 11:32:24 -0500 | From | Jeff Garzik <> | Subject | Re: 2.6.24-git: kmap_atomic() WARN_ON() |
| |
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
| |