Skip to content

Commit a04f2c3

Browse files
committed
ALSA: seq: virmidi: Use guard() for locking
We can simplify the code gracefully with new guard() macro and co for automatic cleanup of locks. Only the code refactoring, and no functional changes. Signed-off-by: Takashi Iwai <tiwai@suse.de> Link: https://lore.kernel.org/r/20240227085306.9764-20-tiwai@suse.de
1 parent 6487e36 commit a04f2c3

1 file changed

Lines changed: 8 additions & 10 deletions

File tree

sound/core/seq/seq_virmidi.c

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -199,11 +199,10 @@ static int snd_virmidi_input_open(struct snd_rawmidi_substream *substream)
199199
vmidi->client = rdev->client;
200200
vmidi->port = rdev->port;
201201
runtime->private_data = vmidi;
202-
down_write(&rdev->filelist_sem);
203-
write_lock_irq(&rdev->filelist_lock);
204-
list_add_tail(&vmidi->list, &rdev->filelist);
205-
write_unlock_irq(&rdev->filelist_lock);
206-
up_write(&rdev->filelist_sem);
202+
scoped_guard(rwsem_write, &rdev->filelist_sem) {
203+
guard(write_lock_irq)(&rdev->filelist_lock);
204+
list_add_tail(&vmidi->list, &rdev->filelist);
205+
}
207206
vmidi->rdev = rdev;
208207
return 0;
209208
}
@@ -243,11 +242,10 @@ static int snd_virmidi_input_close(struct snd_rawmidi_substream *substream)
243242
struct snd_virmidi_dev *rdev = substream->rmidi->private_data;
244243
struct snd_virmidi *vmidi = substream->runtime->private_data;
245244

246-
down_write(&rdev->filelist_sem);
247-
write_lock_irq(&rdev->filelist_lock);
248-
list_del(&vmidi->list);
249-
write_unlock_irq(&rdev->filelist_lock);
250-
up_write(&rdev->filelist_sem);
245+
scoped_guard(rwsem_write, &rdev->filelist_sem) {
246+
guard(write_lock_irq)(&rdev->filelist_lock);
247+
list_del(&vmidi->list);
248+
}
251249
snd_midi_event_free(vmidi->parser);
252250
substream->runtime->private_data = NULL;
253251
kfree(vmidi);

0 commit comments

Comments
 (0)