Just curious why spin_lock_irqsave
needs to disable the preemption after disabling local interrupt.
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_); ...}
Preemption should only be possible with interrupt enabled, thus there should be no need to worry about preemption after disabling interrupt.