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_);
...
}
プリエンプションは、割り込みが有効になっている場合にのみ可能であるべきです。したがって、割り込みを無効にした後のプリエンプションについて心配する必要はありません。