As I understand that, if there is some data in interrupt handler which is shared with other process, it should be protected using spin lock, also we need to disable the local interrupt. But what if the data is shared between multiple interrupt handler, how can I protect it ?
Whenever there is a critical section
(CS
) that can be run in interrupt context
, you use a spinlock
to protect it, it does not matter if the CS
is shared between interrupt handler
and a process
or between interrupt handlers
.
The reson why you do not use semaphore
or mutex
is obvious, because you can't sleep in interrupt context
.