On Wed, 22 Jan 2025 18:57:01 +0100 Peter Zijlstra <peterz@xxxxxxxxxxxxx> wrote: > If I followed the maze right, then I get something like: > > raw_spin_lock_irqsave(lock, flags) > local_irq_save(flags); > preempt_disable(); > arch_spin_lock(lock); > mmiowb_spin_lock(); > > > And here you leave out that preempt_disable() and mmiowb stuff. The > former is fine because local_irq_save() already makes things > non-preemptible and there are no irq-state games. The mmiowb thing is > fine because nothing inside this critical section cares about mmio. Ah, yeah. OK, I don't plan on adding the preempt_disable() either as again, this is really just an emulation of atomic64 for architectures that do not support it. I'll resend this with an updated change log. Thanks for the review. -- Steve