Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

ALSA: dummy: Use guard() for spin locks

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/20250829150026.6379-9-tiwai@suse.de

+16 -24
+16 -24
sound/drivers/dummy.c
··· 269 269 static int dummy_systimer_start(struct snd_pcm_substream *substream) 270 270 { 271 271 struct dummy_systimer_pcm *dpcm = substream->runtime->private_data; 272 - spin_lock(&dpcm->lock); 272 + 273 + guard(spinlock)(&dpcm->lock); 273 274 dpcm->base_time = jiffies; 274 275 dummy_systimer_rearm(dpcm); 275 - spin_unlock(&dpcm->lock); 276 276 return 0; 277 277 } 278 278 279 279 static int dummy_systimer_stop(struct snd_pcm_substream *substream) 280 280 { 281 281 struct dummy_systimer_pcm *dpcm = substream->runtime->private_data; 282 - spin_lock(&dpcm->lock); 282 + 283 + guard(spinlock)(&dpcm->lock); 283 284 timer_delete(&dpcm->timer); 284 - spin_unlock(&dpcm->lock); 285 285 return 0; 286 286 } 287 287 ··· 303 303 static void dummy_systimer_callback(struct timer_list *t) 304 304 { 305 305 struct dummy_systimer_pcm *dpcm = timer_container_of(dpcm, t, timer); 306 - unsigned long flags; 307 306 int elapsed = 0; 308 307 309 - spin_lock_irqsave(&dpcm->lock, flags); 310 - dummy_systimer_update(dpcm); 311 - dummy_systimer_rearm(dpcm); 312 - elapsed = dpcm->elapsed; 313 - dpcm->elapsed = 0; 314 - spin_unlock_irqrestore(&dpcm->lock, flags); 308 + scoped_guard(spinlock_irqsave, &dpcm->lock) { 309 + dummy_systimer_update(dpcm); 310 + dummy_systimer_rearm(dpcm); 311 + elapsed = dpcm->elapsed; 312 + dpcm->elapsed = 0; 313 + } 315 314 if (elapsed) 316 315 snd_pcm_period_elapsed(dpcm->substream); 317 316 } ··· 319 320 dummy_systimer_pointer(struct snd_pcm_substream *substream) 320 321 { 321 322 struct dummy_systimer_pcm *dpcm = substream->runtime->private_data; 322 - snd_pcm_uframes_t pos; 323 323 324 - spin_lock(&dpcm->lock); 324 + guard(spinlock)(&dpcm->lock); 325 325 dummy_systimer_update(dpcm); 326 - pos = dpcm->frac_pos / HZ; 327 - spin_unlock(&dpcm->lock); 328 - return pos; 326 + return dpcm->frac_pos / HZ; 329 327 } 330 328 331 329 static int dummy_systimer_create(struct snd_pcm_substream *substream) ··· 720 724 struct snd_dummy *dummy = snd_kcontrol_chip(kcontrol); 721 725 int addr = kcontrol->private_value; 722 726 723 - spin_lock_irq(&dummy->mixer_lock); 727 + guard(spinlock_irq)(&dummy->mixer_lock); 724 728 ucontrol->value.integer.value[0] = dummy->mixer_volume[addr][0]; 725 729 ucontrol->value.integer.value[1] = dummy->mixer_volume[addr][1]; 726 - spin_unlock_irq(&dummy->mixer_lock); 727 730 return 0; 728 731 } 729 732 ··· 743 748 right = mixer_volume_level_min; 744 749 if (right > mixer_volume_level_max) 745 750 right = mixer_volume_level_max; 746 - spin_lock_irq(&dummy->mixer_lock); 751 + guard(spinlock_irq)(&dummy->mixer_lock); 747 752 change = dummy->mixer_volume[addr][0] != left || 748 753 dummy->mixer_volume[addr][1] != right; 749 754 dummy->mixer_volume[addr][0] = left; 750 755 dummy->mixer_volume[addr][1] = right; 751 - spin_unlock_irq(&dummy->mixer_lock); 752 756 return change; 753 757 } 754 758 ··· 767 773 struct snd_dummy *dummy = snd_kcontrol_chip(kcontrol); 768 774 int addr = kcontrol->private_value; 769 775 770 - spin_lock_irq(&dummy->mixer_lock); 776 + guard(spinlock_irq)(&dummy->mixer_lock); 771 777 ucontrol->value.integer.value[0] = dummy->capture_source[addr][0]; 772 778 ucontrol->value.integer.value[1] = dummy->capture_source[addr][1]; 773 - spin_unlock_irq(&dummy->mixer_lock); 774 779 return 0; 775 780 } 776 781 ··· 781 788 782 789 left = ucontrol->value.integer.value[0] & 1; 783 790 right = ucontrol->value.integer.value[1] & 1; 784 - spin_lock_irq(&dummy->mixer_lock); 791 + guard(spinlock_irq)(&dummy->mixer_lock); 785 792 change = dummy->capture_source[addr][0] != left && 786 793 dummy->capture_source[addr][1] != right; 787 794 dummy->capture_source[addr][0] = left; 788 795 dummy->capture_source[addr][1] = right; 789 - spin_unlock_irq(&dummy->mixer_lock); 790 796 return change; 791 797 } 792 798