* No process context. So, data transfer from/to user space is invalid.
* not associated with any process, so not allowed to "sleep" in any
way
So, no calling schedule, no taking any semaphores, no calling wait_ functions. Also, allocating memory only with GFP_ATOMIC.
* since sleeping is not allowed, kernel preemption is automatically
disabled
* when servicing a given interrupt, that interrupt is masked out on
all processors so interrupt handlers don't have to be re-entrant
* however, when servicing a given interrupt, *other* interrupts are
still possible unless you explicitly disable them
This explicit disabling of interrupts can only be done for the local processor.
CMIIW.
Thanks,
- Ratnadeep