Re: [PATCH v9 9/9] locking: Switch to _irq_{disable,enable}() variants in cleanup guards

From: Guangbo Cui
Date: Sat Apr 05 2025 - 04:25:29 EST


> include/linux/spinlock.h | 26 ++++++++++++--------------
> 1 file changed, 12 insertions(+), 14 deletions(-)
>
> diff --git a/include/linux/spinlock.h b/include/linux/spinlock.h
> index 897114d60cfd4..764c9fd797d0e 100644
> --- a/include/linux/spinlock.h
> +++ b/include/linux/spinlock.h
> @@ -605,18 +605,17 @@ DEFINE_LOCK_GUARD_1(raw_spinlock_nested, raw_spinlock_t,
> raw_spin_unlock(_T->lock))
>
> DEFINE_LOCK_GUARD_1(raw_spinlock_irq, raw_spinlock_t,
> - raw_spin_lock_irq(_T->lock),
> - raw_spin_unlock_irq(_T->lock))
> + raw_spin_lock_irq_disable(_T->lock),
> + raw_spin_unlock_irq_enable(_T->lock))
>
> -DEFINE_LOCK_GUARD_1_COND(raw_spinlock_irq, _try, raw_spin_trylock_irq(_T->lock))
> +DEFINE_LOCK_GUARD_1_COND(raw_spinlock_irq, _try, raw_spin_trylock_irq_disable(_T->lock))
>
> DEFINE_LOCK_GUARD_1(raw_spinlock_irqsave, raw_spinlock_t,
> - raw_spin_lock_irqsave(_T->lock, _T->flags),
> - raw_spin_unlock_irqrestore(_T->lock, _T->flags),
> - unsigned long flags)
> + raw_spin_lock_irq_disable(_T->lock),
> + raw_spin_unlock_irq_enable(_T->lock))
>
> DEFINE_LOCK_GUARD_1_COND(raw_spinlock_irqsave, _try,
> - raw_spin_trylock_irqsave(_T->lock, _T->flags))
> + raw_spin_trylock_irq_disable(_T->lock))

It seems that the `raw_spin_trylock_irq_disable` function is missing from
spinlock_rt.h, which will lead to a build failure when compiling with
PREEMPT_RT enabled.

Best regards,
Guangbo Cui