fix spin_lock in irq