]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
ALSA: es1968: Add error handling for snd_pcm_hw_constraint_pow2()
authorWentao Liang <vulab@iscas.ac.cn>
Wed, 14 May 2025 09:24:44 +0000 (17:24 +0800)
committerTakashi Iwai <tiwai@suse.de>
Wed, 14 May 2025 10:13:03 +0000 (12:13 +0200)
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>
Link: https://patch.msgid.link/20250514092444.331-1-vulab@iscas.ac.cn
Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/pci/es1968.c

index c6c018b40c69f9bd1af9c4d361cb6258ae01b077..4e0693f0ab0f890ef38e0f3d7c272a333fe7f2b8 100644 (file)
@@ -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);