For the common case CONFIG_CPU_MIPSR2 && CONFIG_IRQ_CPU raw_local_irq_restore_flags is defined as: " beqz \\flags, 1f \n" " di \n" " ei \n" "1: \n" Doesn't this imply that you can't do recursive local_irq_save() (with different locks ofcourse)? Best Regards /Mikael