Are Interrupts assigned to a fixed CPU (always handled by the same CPU)?
To put my question in context:
From: http://msdn.microsoft.com/en-us/library/ms795060.aspx
The spin lock that protects the shared area has an IRQL equal to the DIRQL at which the device interrupts. As long as the critical-section routine holds the spin lock and accesses the shared area at DIRQL, the ISR cannot be run in either a uniprocessor or SMP machine.
That makes sense on a uniprocessor machine as the interrupt will not be serviced by the CPU until the lock is released since the IRQL of the CPU is not less than the interrupt IRQL. On a SMP machine however, what would prevent the interrupt to be handled by the other CPU (not the CPU owning the lock) and corrupt the data... ?