ALSA: gus: Fix some error handling paths related to get_bpos() usage

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

Fixes: a6970bb1dd ("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>
This commit is contained in:
Christophe JAILLET 2024-10-03 21:34:01 +02:00 committed by Takashi Iwai
parent 3e8800273c
commit 9df39a872c

View File

@ -364,7 +364,7 @@ static int snd_gf1_pcm_playback_copy(struct snd_pcm_substream *substream,
bpos = get_bpos(pcmp, voice, pos, len); bpos = get_bpos(pcmp, voice, pos, len);
if (bpos < 0) if (bpos < 0)
return pos; return bpos;
if (copy_from_iter(runtime->dma_area + bpos, len, src) != len) if (copy_from_iter(runtime->dma_area + bpos, len, src) != len)
return -EFAULT; return -EFAULT;
return playback_copy_ack(substream, bpos, len); return playback_copy_ack(substream, bpos, len);
@ -381,7 +381,7 @@ static int snd_gf1_pcm_playback_silence(struct snd_pcm_substream *substream,
bpos = get_bpos(pcmp, voice, pos, len); bpos = get_bpos(pcmp, voice, pos, len);
if (bpos < 0) if (bpos < 0)
return pos; return bpos;
snd_pcm_format_set_silence(runtime->format, runtime->dma_area + bpos, snd_pcm_format_set_silence(runtime->format, runtime->dma_area + bpos,
bytes_to_samples(runtime, count)); bytes_to_samples(runtime, count));
return playback_copy_ack(substream, bpos, len); return playback_copy_ack(substream, bpos, len);