mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-06 02:50:43 +00:00
ALSA: pcm: Fix missing fixup call in compat hw_refine ioctl
commit358040e380
upstream. 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: Meng_Cai@novatek.com.cn Fixes:f9a076bff0
("ALSA: pcm: calculate non-mask/non-interval parameters always when possible") Reviewed-by: Takashi Sakamoto <o-takashi@sakamocchi.jp> Reviewed-by: Jaroslav Kysela <perex@perex.cz> Cc: <stable@vger.kernel.org> Link: https://lore.kernel.org/r/20230829134344.31588-1-tiwai@suse.de Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
64e6e0dc2d
commit
b9ec6441cb
1 changed files with 6 additions and 2 deletions
|
@ -329,10 +329,14 @@ static int snd_pcm_ioctl_hw_params_compat(struct snd_pcm_substream *substream,
|
||||||
goto error;
|
goto error;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (refine)
|
if (refine) {
|
||||||
err = snd_pcm_hw_refine(substream, data);
|
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);
|
err = snd_pcm_hw_params(substream, data);
|
||||||
|
}
|
||||||
if (err < 0)
|
if (err < 0)
|
||||||
goto error;
|
goto error;
|
||||||
if (copy_to_user(data32, data, sizeof(*data32)) ||
|
if (copy_to_user(data32, data, sizeof(*data32)) ||
|
||||||
|
|
Loading…
Reference in a new issue