]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
ALSA: firewire: tascam: Use guard() for spin locks
authorTakashi Iwai <tiwai@suse.de>
Thu, 28 Aug 2025 13:27:22 +0000 (15:27 +0200)
committerTakashi Iwai <tiwai@suse.de>
Sat, 30 Aug 2025 08:02:27 +0000 (10:02 +0200)
Clean up the code using guard() for spin locks.

Merely code refactoring, and no behavior change.

Reviewed-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Link: https://patch.msgid.link/20250828132802.9032-19-tiwai@suse.de
sound/firewire/tascam/amdtp-tascam.c
sound/firewire/tascam/tascam-hwdep.c
sound/firewire/tascam/tascam-midi.c
sound/firewire/tascam/tascam-stream.c

index 079afa4bd3811b880e8ef3d6735e41d8305d004d..59c339d9b5fb71af5291dd04756d68aa695ae9f9 100644 (file)
@@ -157,15 +157,14 @@ static void read_status_messages(struct amdtp_stream *s,
                        if ((before ^ after) & mask) {
                                struct snd_firewire_tascam_change *entry =
                                                &tscm->queue[tscm->push_pos];
-                               unsigned long flag;
-
-                               spin_lock_irqsave(&tscm->lock, flag);
-                               entry->index = index;
-                               entry->before = before;
-                               entry->after = after;
-                               if (++tscm->push_pos >= SND_TSCM_QUEUE_COUNT)
-                                       tscm->push_pos = 0;
-                               spin_unlock_irqrestore(&tscm->lock, flag);
+
+                               scoped_guard(spinlock_irqsave, &tscm->lock) {
+                                       entry->index = index;
+                                       entry->before = before;
+                                       entry->after = after;
+                                       if (++tscm->push_pos >= SND_TSCM_QUEUE_COUNT)
+                                               tscm->push_pos = 0;
+                               }
 
                                wake_up(&tscm->hwdep_wait);
                        }
index 8fc30cba29d531e7ca226371dc17e29d505c1996..867b4ea1096e131daf970951ec2a06de8574492e 100644 (file)
@@ -130,18 +130,14 @@ static __poll_t hwdep_poll(struct snd_hwdep *hwdep, struct file *file,
                               poll_table *wait)
 {
        struct snd_tscm *tscm = hwdep->private_data;
-       __poll_t events;
 
        poll_wait(file, &tscm->hwdep_wait, wait);
 
-       spin_lock_irq(&tscm->lock);
+       guard(spinlock_irq)(&tscm->lock);
        if (tscm->dev_lock_changed || tscm->push_pos != tscm->pull_pos)
-               events = EPOLLIN | EPOLLRDNORM;
+               return EPOLLIN | EPOLLRDNORM;
        else
-               events = 0;
-       spin_unlock_irq(&tscm->lock);
-
-       return events;
+               return 0;
 }
 
 static int hwdep_get_info(struct snd_tscm *tscm, void __user *arg)
@@ -165,38 +161,26 @@ static int hwdep_get_info(struct snd_tscm *tscm, void __user *arg)
 
 static int hwdep_lock(struct snd_tscm *tscm)
 {
-       int err;
-
-       spin_lock_irq(&tscm->lock);
+       guard(spinlock_irq)(&tscm->lock);
 
        if (tscm->dev_lock_count == 0) {
                tscm->dev_lock_count = -1;
-               err = 0;
+               return 0;
        } else {
-               err = -EBUSY;
+               return -EBUSY;
        }
-
-       spin_unlock_irq(&tscm->lock);
-
-       return err;
 }
 
 static int hwdep_unlock(struct snd_tscm *tscm)
 {
-       int err;
-
-       spin_lock_irq(&tscm->lock);
+       guard(spinlock_irq)(&tscm->lock);
 
        if (tscm->dev_lock_count == -1) {
                tscm->dev_lock_count = 0;
-               err = 0;
+               return 0;
        } else {
-               err = -EBADFD;
+               return -EBADFD;
        }
-
-       spin_unlock_irq(&tscm->lock);
-
-       return err;
 }
 
 static int tscm_hwdep_state(struct snd_tscm *tscm, void __user *arg)
@@ -211,10 +195,9 @@ static int hwdep_release(struct snd_hwdep *hwdep, struct file *file)
 {
        struct snd_tscm *tscm = hwdep->private_data;
 
-       spin_lock_irq(&tscm->lock);
+       guard(spinlock_irq)(&tscm->lock);
        if (tscm->dev_lock_count == -1)
                tscm->dev_lock_count = 0;
-       spin_unlock_irq(&tscm->lock);
 
        return 0;
 }
index c57fac4f196819462aac2d0ebc11f03c16ce36fc..1bf9d7b3da339c5a4df91d4aabb662cc400d5007 100644 (file)
@@ -43,30 +43,24 @@ static void midi_playback_drain(struct snd_rawmidi_substream *substream)
 static void midi_capture_trigger(struct snd_rawmidi_substream *substrm, int up)
 {
        struct snd_tscm *tscm = substrm->rmidi->private_data;
-       unsigned long flags;
 
-       spin_lock_irqsave(&tscm->lock, flags);
+       guard(spinlock_irqsave)(&tscm->lock);
 
        if (up)
                tscm->tx_midi_substreams[substrm->number] = substrm;
        else
                tscm->tx_midi_substreams[substrm->number] = NULL;
-
-       spin_unlock_irqrestore(&tscm->lock, flags);
 }
 
 static void midi_playback_trigger(struct snd_rawmidi_substream *substrm, int up)
 {
        struct snd_tscm *tscm = substrm->rmidi->private_data;
-       unsigned long flags;
 
-       spin_lock_irqsave(&tscm->lock, flags);
+       guard(spinlock_irqsave)(&tscm->lock);
 
        if (up)
                snd_fw_async_midi_port_run(&tscm->out_ports[substrm->number],
                                           substrm);
-
-       spin_unlock_irqrestore(&tscm->lock, flags);
 }
 
 int snd_tscm_create_midi_devices(struct snd_tscm *tscm)
index dfe783d01d7d20cb4295625cecc8d5953f3607b3..9c8fddd7dee10708aac727134b4da1974fc8f46d 100644 (file)
@@ -527,33 +527,24 @@ void snd_tscm_stream_lock_changed(struct snd_tscm *tscm)
 
 int snd_tscm_stream_lock_try(struct snd_tscm *tscm)
 {
-       int err;
-
-       spin_lock_irq(&tscm->lock);
+       guard(spinlock_irq)(&tscm->lock);
 
        /* user land lock this */
-       if (tscm->dev_lock_count < 0) {
-               err = -EBUSY;
-               goto end;
-       }
+       if (tscm->dev_lock_count < 0)
+               return -EBUSY;
 
        /* this is the first time */
        if (tscm->dev_lock_count++ == 0)
                snd_tscm_stream_lock_changed(tscm);
-       err = 0;
-end:
-       spin_unlock_irq(&tscm->lock);
-       return err;
+       return 0;
 }
 
 void snd_tscm_stream_lock_release(struct snd_tscm *tscm)
 {
-       spin_lock_irq(&tscm->lock);
+       guard(spinlock_irq)(&tscm->lock);
 
        if (WARN_ON(tscm->dev_lock_count <= 0))
-               goto end;
+               return;
        if (--tscm->dev_lock_count == 0)
                snd_tscm_stream_lock_changed(tscm);
-end:
-       spin_unlock_irq(&tscm->lock);
 }