From 83aee46dc2142eed2dc40b5cef0e9e08e14cac42 Mon Sep 17 00:00:00 2001 From: Peter Ujfalusi Date: Mon, 12 Jan 2026 12:10:04 +0200 Subject: [PATCH] ASoC: SOF: ipc/ops: Use guard() for spinlocks Replace the manual spinlock lock/unlock pairs with guard(). Only code refactoring, and no behavior change. Signed-off-by: Peter Ujfalusi Reviewed-by: Daniel Baluta Reviewed-by: Ranjani Sridharan Link: https://patch.msgid.link/20260112101004.7648-8-peter.ujfalusi@linux.intel.com Signed-off-by: Mark Brown --- sound/soc/sof/ipc.c | 4 +--- sound/soc/sof/ops.c | 34 +++++++--------------------------- 2 files changed, 8 insertions(+), 30 deletions(-) diff --git a/sound/soc/sof/ipc.c b/sound/soc/sof/ipc.c index 3fdeb07bafa3f..e6d8894b8ef60 100644 --- a/sound/soc/sof/ipc.c +++ b/sound/soc/sof/ipc.c @@ -47,7 +47,7 @@ int sof_ipc_send_msg(struct snd_sof_dev *sdev, void *msg_data, size_t msg_bytes, * The spin-lock is needed to protect message objects against other * atomic contexts. */ - spin_lock_irq(&sdev->ipc_lock); + guard(spinlock_irq)(&sdev->ipc_lock); /* initialise the message */ msg = &ipc->msg; @@ -66,8 +66,6 @@ int sof_ipc_send_msg(struct snd_sof_dev *sdev, void *msg_data, size_t msg_bytes, if (!ret) msg->ipc_complete = false; - spin_unlock_irq(&sdev->ipc_lock); - return ret; } diff --git a/sound/soc/sof/ops.c b/sound/soc/sof/ops.c index bd52e7ec68836..74c04dcf4167c 100644 --- a/sound/soc/sof/ops.c +++ b/sound/soc/sof/ops.c @@ -38,13 +38,8 @@ bool snd_sof_pci_update_bits_unlocked(struct snd_sof_dev *sdev, u32 offset, bool snd_sof_pci_update_bits(struct snd_sof_dev *sdev, u32 offset, u32 mask, u32 value) { - unsigned long flags; - bool change; - - spin_lock_irqsave(&sdev->hw_lock, flags); - change = snd_sof_pci_update_bits_unlocked(sdev, offset, mask, value); - spin_unlock_irqrestore(&sdev->hw_lock, flags); - return change; + guard(spinlock_irqsave)(&sdev->hw_lock); + return snd_sof_pci_update_bits_unlocked(sdev, offset, mask, value); } EXPORT_SYMBOL(snd_sof_pci_update_bits); @@ -90,28 +85,16 @@ EXPORT_SYMBOL(snd_sof_dsp_update_bits64_unlocked); bool snd_sof_dsp_update_bits(struct snd_sof_dev *sdev, u32 bar, u32 offset, u32 mask, u32 value) { - unsigned long flags; - bool change; - - spin_lock_irqsave(&sdev->hw_lock, flags); - change = snd_sof_dsp_update_bits_unlocked(sdev, bar, offset, mask, - value); - spin_unlock_irqrestore(&sdev->hw_lock, flags); - return change; + guard(spinlock_irqsave)(&sdev->hw_lock); + return snd_sof_dsp_update_bits_unlocked(sdev, bar, offset, mask, value); } EXPORT_SYMBOL(snd_sof_dsp_update_bits); bool snd_sof_dsp_update_bits64(struct snd_sof_dev *sdev, u32 bar, u32 offset, u64 mask, u64 value) { - unsigned long flags; - bool change; - - spin_lock_irqsave(&sdev->hw_lock, flags); - change = snd_sof_dsp_update_bits64_unlocked(sdev, bar, offset, mask, - value); - spin_unlock_irqrestore(&sdev->hw_lock, flags); - return change; + guard(spinlock_irqsave)(&sdev->hw_lock); + return snd_sof_dsp_update_bits64_unlocked(sdev, bar, offset, mask, value); } EXPORT_SYMBOL(snd_sof_dsp_update_bits64); @@ -134,11 +117,8 @@ void snd_sof_dsp_update_bits_forced_unlocked(struct snd_sof_dev *sdev, u32 bar, void snd_sof_dsp_update_bits_forced(struct snd_sof_dev *sdev, u32 bar, u32 offset, u32 mask, u32 value) { - unsigned long flags; - - spin_lock_irqsave(&sdev->hw_lock, flags); + guard(spinlock_irqsave)(&sdev->hw_lock); snd_sof_dsp_update_bits_forced_unlocked(sdev, bar, offset, mask, value); - spin_unlock_irqrestore(&sdev->hw_lock, flags); } EXPORT_SYMBOL(snd_sof_dsp_update_bits_forced); -- 2.47.3