[PATCH] ALSA: es1968: Add error handling for snd_pcm_hw_constraint_pow2()

Wentao Liang posted 1 patch 8 months, 4 weeks ago
sound/pci/es1968.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
[PATCH] ALSA: es1968: Add error handling for snd_pcm_hw_constraint_pow2()
Posted by Wentao Liang 8 months, 4 weeks ago
The function snd_es1968_capture_open() calls the function
snd_pcm_hw_constraint_pow2(), but does not check its return
value. A proper implementation can be found in snd_cx25821_pcm_open().

Add error handling for snd_pcm_hw_constraint_pow2() and propagate its
error code.

Fixes: b942cf815b57 ("[ALSA] es1968 - Fix stuttering capture")
Cc: stable@vger.kernel.org # v2.6.22
Signed-off-by: Wentao Liang <vulab@iscas.ac.cn>
---
 sound/pci/es1968.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/sound/pci/es1968.c b/sound/pci/es1968.c
index c6c018b40c69..4e0693f0ab0f 100644
--- a/sound/pci/es1968.c
+++ b/sound/pci/es1968.c
@@ -1561,7 +1561,7 @@ static int snd_es1968_capture_open(struct snd_pcm_substream *substream)
 	struct snd_pcm_runtime *runtime = substream->runtime;
 	struct es1968 *chip = snd_pcm_substream_chip(substream);
 	struct esschan *es;
-	int apu1, apu2;
+	int err, apu1, apu2;
 
 	apu1 = snd_es1968_alloc_apu_pair(chip, ESM_APU_PCM_CAPTURE);
 	if (apu1 < 0)
@@ -1605,7 +1605,9 @@ static int snd_es1968_capture_open(struct snd_pcm_substream *substream)
 	runtime->hw = snd_es1968_capture;
 	runtime->hw.buffer_bytes_max = runtime->hw.period_bytes_max =
 		calc_available_memory_size(chip) - 1024; /* keep MIXBUF size */
-	snd_pcm_hw_constraint_pow2(runtime, 0, SNDRV_PCM_HW_PARAM_BUFFER_BYTES);
+	err = snd_pcm_hw_constraint_pow2(runtime, 0, SNDRV_PCM_HW_PARAM_BUFFER_BYTES);
+	if (err < 0)
+		return err;
 
 	spin_lock_irq(&chip->substream_lock);
 	list_add(&es->list, &chip->substream_list);
-- 
2.42.0.windows.2
Re: [PATCH] ALSA: es1968: Add error handling for snd_pcm_hw_constraint_pow2()
Posted by Takashi Iwai 8 months, 4 weeks ago
On Wed, 14 May 2025 11:24:44 +0200,
Wentao Liang wrote:
> 
> The function snd_es1968_capture_open() calls the function
> snd_pcm_hw_constraint_pow2(), but does not check its return
> value. A proper implementation can be found in snd_cx25821_pcm_open().
> 
> Add error handling for snd_pcm_hw_constraint_pow2() and propagate its
> error code.
> 
> Fixes: b942cf815b57 ("[ALSA] es1968 - Fix stuttering capture")
> Cc: stable@vger.kernel.org # v2.6.22
> Signed-off-by: Wentao Liang <vulab@iscas.ac.cn>

Thanks, applied now.


Takashi