]> Git Repo - J-linux.git/commitdiff
ALSA: pcm: Fix missing fixup call in compat hw_refine ioctl
authorTakashi Iwai <[email protected]>
Tue, 29 Aug 2023 13:43:44 +0000 (15:43 +0200)
committerTakashi Iwai <[email protected]>
Tue, 29 Aug 2023 14:03:11 +0000 (16:03 +0200)
The update of rate_num/den and msbits were factored out to
fixup_unreferenced_params() function to be called explicitly after the
hw_refine or hw_params procedure.  It's called from
snd_pcm_hw_refine_user(), but it's forgotten in the PCM compat ioctl.
This ended up with the incomplete rate_num/den and msbits parameters
when 32bit compat ioctl is used.

This patch adds the missing call in snd_pcm_ioctl_hw_params_compat().

Reported-by: [email protected]
Fixes: f9a076bff053 ("ALSA: pcm: calculate non-mask/non-interval parameters always when possible")
Reviewed-by: Takashi Sakamoto <[email protected]>
Reviewed-by: Jaroslav Kysela <[email protected]>
Cc: <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Takashi Iwai <[email protected]>
sound/core/pcm_compat.c

index 42c2ada8e888737e97d59ab374b30aef29da6410..c96483091f30aa3ff63c3b55bb466b8b63f5df4d 100644 (file)
@@ -253,10 +253,14 @@ static int snd_pcm_ioctl_hw_params_compat(struct snd_pcm_substream *substream,
                goto error;
        }
 
-       if (refine)
+       if (refine) {
                err = snd_pcm_hw_refine(substream, data);
-       else
+               if (err < 0)
+                       goto error;
+               err = fixup_unreferenced_params(substream, data);
+       } else {
                err = snd_pcm_hw_params(substream, data);
+       }
        if (err < 0)
                goto error;
        if (copy_to_user(data32, data, sizeof(*data32)) ||
This page took 0.039726 seconds and 4 git commands to generate.