ALSA: rawmidi: Check stream state at exported functions
authorTakashi Iwai <tiwai@suse.de>
Fri, 17 Jun 2022 14:40:50 +0000 (16:40 +0200)
committerTakashi Iwai <tiwai@suse.de>
Mon, 20 Jun 2022 07:36:03 +0000 (09:36 +0200)
commit463a20fd3481de33c2746f050b4e3f2e6db8017f
tree44eaf3cba678d83f5fc6310babf3939468006fa6
parent94b98194b62e3fe3f27129d8e4b1f3fd7c5e972b
ALSA: rawmidi: Check stream state at exported functions

The rawmidi interface provides some exported functions to be called
from outside, and currently there is no state check for those calls
whether the stream is properly opened and running.  Although such an
invalid call shouldn't happen, but who knows.

This patch adds the proper rawmidi stream state checks with spinlocks
for avoiding unexpected accesses when such exported functions are
called in an invalid state.  After this patch, with the
substream->opened and substream->runtime are always tied and
guaranteed to be set under substream->lock.

Link: https://lore.kernel.org/r/20220617144051.18985-5-tiwai@suse.de
Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/core/rawmidi.c