ALSA: pcm: Fix referred substream in snd_pcm_action_group() unlock loop
authorTakashi Iwai <tiwai@suse.de>
Mon, 13 Oct 2014 21:14:46 +0000 (23:14 +0200)
committerTakashi Iwai <tiwai@suse.de>
Tue, 14 Oct 2014 07:14:48 +0000 (09:14 +0200)
In the unlock loop of snd_pcm_action_group(), the object "s" is used
as the check of nonatomic PCM, but it should be rather "s1", which is
the iterator of the loop.  This supposedly causes a kernel panic when
the substreams in operatino are linked.

Fixes: 257f8cce5d40 ('ALSA: pcm: Allow nonatomic trigger operations')
Reported-and-tested-by: Arthur Marsh <arthur.marsh@internode.on.net>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/core/pcm_native.c

index 85fe1a216225cdd14165b3c947d1bf184d23ecd8..bfe1cf6b492f08489a2f7a5dd7bc9e54ae61a4cc 100644 (file)
@@ -818,7 +818,7 @@ static int snd_pcm_action_group(struct action_ops *ops,
                /* unlock streams */
                snd_pcm_group_for_each_entry(s1, substream) {
                        if (s1 != substream) {
-                               if (s->pcm->nonatomic)
+                               if (s1->pcm->nonatomic)
                                        mutex_unlock(&s1->self_group.mutex);
                                else
                                        spin_unlock(&s1->self_group.lock);