Interrupt handler can use spin_lock_irqsave() and spin_unlock_irqrestore().Avoid holding the lock more then 5 line of code.