I've been working on Linux drivers for custom hardware we produce in-house, and in the process I have some unanswered questions about how interrupts actually work at a low level in Linux.
Specifically, what does spin_lock_irqsave() do to the underlying interrupt routines in the OS, and the interrupt controller itself? Is there a chance I'll miss an interrupt, or am I just being paranoid? I'm only manipulating a couple of pointers in my interrupt message list (not allocating memory or anything slow), so we should only be talking a couple of microseconds or so...
I have all of the requisite O'Reilly books on Embedded Linux development and writing drivers for Linux, but I am still missing background information that I'd like to see to be sure that my drivers are correct and that I won't be getting problem reports the day it ships out to our customers.
If anyone can help me understand what goes on under the covers, or point me at a better book or a white paper, I'd appreciate it.