]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
ALSA: gus: Fix some error handling paths related to get_bpos() usage
authorChristophe JAILLET <christophe.jaillet@wanadoo.fr>
Thu, 3 Oct 2024 19:34:01 +0000 (21:34 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 10 Oct 2024 10:00:12 +0000 (12:00 +0200)
[ Upstream commit 9df39a872c462ea07a3767ebd0093c42b2ff78a2 ]

If get_bpos() fails, it is likely that the corresponding error code should
be returned.

Fixes: a6970bb1dd99 ("ALSA: gus: Convert to the new PCM ops")
Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Link: https://patch.msgid.link/d9ca841edad697154afa97c73a5d7a14919330d9.1727984008.git.christophe.jaillet@wanadoo.fr
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Sasha Levin <sashal@kernel.org>
sound/isa/gus/gus_pcm.c

index 850544725da796b88cbd52e81d21301df88df0a3..d55c3dc229c0e8de011499a2de538d3465b9774f 100644 (file)
@@ -378,7 +378,7 @@ static int snd_gf1_pcm_playback_copy(struct snd_pcm_substream *substream,
 
        bpos = get_bpos(pcmp, voice, pos, len);
        if (bpos < 0)
-               return pos;
+               return bpos;
        if (copy_from_iter(runtime->dma_area + bpos, len, src) != len)
                return -EFAULT;
        return playback_copy_ack(substream, bpos, len);
@@ -395,7 +395,7 @@ static int snd_gf1_pcm_playback_silence(struct snd_pcm_substream *substream,
        
        bpos = get_bpos(pcmp, voice, pos, len);
        if (bpos < 0)
-               return pos;
+               return bpos;
        snd_pcm_format_set_silence(runtime->format, runtime->dma_area + bpos,
                                   bytes_to_samples(runtime, count));
        return playback_copy_ack(substream, bpos, len);