只是好奇为什么spin_lock_irqsave
在禁用本地中断后需要禁用抢占。
static inline unsigned long __raw_spin_lock_irqsave(raw_spinlock_t *lock)
{
unsigned long flags;
local_irq_save(flags);
preempt_disable(); ===> can preemption happen with interrupt disabled?
spin_acquire(&lock->dep_map, 0, 0, _RET_IP_);
...
}
只有在启用中断的情况下才能进行抢占,因此无需担心禁用中断后的抢占。