]> www.infradead.org Git - users/hch/misc.git/commitdiff
ALSA: ac97: Use guard() for spin locks
authorTakashi Iwai <tiwai@suse.de>
Fri, 29 Aug 2025 14:42:37 +0000 (16:42 +0200)
committerTakashi Iwai <tiwai@suse.de>
Mon, 1 Sep 2025 11:52:38 +0000 (13:52 +0200)
Clean up the code using guard() for spin locks.

Merely code refactoring, and no behavior change.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
Link: https://patch.msgid.link/20250829144342.4290-3-tiwai@suse.de
sound/pci/ac97/ac97_pcm.c

index fa14a562fe87763e636be5fa1a88b7145cd4986d..4715d88ff8f4eb97cd7bcbb2eb19fbe3d5acbe04 100644 (file)
@@ -570,33 +570,31 @@ int snd_ac97_pcm_open(struct ac97_pcm *pcm, unsigned int rate,
                                        return err;
                        }
        }
-       spin_lock_irq(&pcm->bus->bus_lock);
-       for (i = 3; i < 12; i++) {
-               if (!(slots & (1 << i)))
-                       continue;
-               ok_flag = 0;
-               for (cidx = 0; cidx < 4; cidx++) {
-                       if (bus->used_slots[pcm->stream][cidx] & (1 << i)) {
-                               spin_unlock_irq(&pcm->bus->bus_lock);
-                               err = -EBUSY;
-                               goto error;
+       scoped_guard(spinlock_irq, &pcm->bus->bus_lock) {
+               for (i = 3; i < 12; i++) {
+                       if (!(slots & (1 << i)))
+                               continue;
+                       ok_flag = 0;
+                       for (cidx = 0; cidx < 4; cidx++) {
+                               if (bus->used_slots[pcm->stream][cidx] & (1 << i)) {
+                                       err = -EBUSY;
+                                       goto error;
+                               }
+                               if (pcm->r[r].rslots[cidx] & (1 << i)) {
+                                       bus->used_slots[pcm->stream][cidx] |= (1 << i);
+                                       ok_flag++;
+                               }
                        }
-                       if (pcm->r[r].rslots[cidx] & (1 << i)) {
-                               bus->used_slots[pcm->stream][cidx] |= (1 << i);
-                               ok_flag++;
+                       if (!ok_flag) {
+                               dev_err(bus->card->dev,
+                                       "cannot find configuration for AC97 slot %i\n",
+                                       i);
+                               err = -EAGAIN;
+                               goto error;
                        }
                }
-               if (!ok_flag) {
-                       spin_unlock_irq(&pcm->bus->bus_lock);
-                       dev_err(bus->card->dev,
-                               "cannot find configuration for AC97 slot %i\n",
-                               i);
-                       err = -EAGAIN;
-                       goto error;
-               }
+               pcm->cur_dbl = r;
        }
-       pcm->cur_dbl = r;
-       spin_unlock_irq(&pcm->bus->bus_lock);
        for (i = 3; i < 12; i++) {
                if (!(slots & (1 << i)))
                        continue;
@@ -664,7 +662,7 @@ int snd_ac97_pcm_close(struct ac97_pcm *pcm)
 #endif
 
        bus = pcm->bus;
-       spin_lock_irq(&pcm->bus->bus_lock);
+       guard(spinlock_irq)(&pcm->bus->bus_lock);
        for (i = 3; i < 12; i++) {
                if (!(slots & (1 << i)))
                        continue;
@@ -673,7 +671,6 @@ int snd_ac97_pcm_close(struct ac97_pcm *pcm)
        }
        pcm->aslots = 0;
        pcm->cur_dbl = 0;
-       spin_unlock_irq(&pcm->bus->bus_lock);
        return 0;
 }