On Fri, Oct 8, 2021 at 1:53 PM Takashi Iwai tiwai@suse.de wrote:
On Fri, 08 Oct 2021 13:45:45 +0200, Arnd Bergmann wrote:
On Fri, Oct 8, 2021 at 1:11 PM Takashi Iwai tiwai@suse.de wrote:
On Fri, 08 Oct 2021 11:24:39 +0200, Arnd Bergmann wrote: The below is a revised kernel patch (again untested), just correcting the behavior of 32bit compat mode. 32bit apps on 32bit kernel work fine as is, as well as 64bit apps on 64bit kernel.
Right, this should cover all cases of the ioctl itself misbehaving. In addition, we still need to disallow the mmap() interface on compat kernels then. Strictly speaking, we could allow the snd_pcm_mmap_status but not snd_pcm_mmap_control to be mapped, but I'm not sure if that's better than disallowing both.
IIRC, the compat mmap is already disallowed even for the SNDRV_PCM_MMAP_OFFSET_CONTROL_NEW (in pcm_control_mmap_allowed()), so no need to change around that.
Ah, right. I think it was meant to become allowed as part of commit 80fe7430c708 ("ALSA: add new 32-bit layout for snd_pcm_mmap_status/control"), which did allow the snd_pcm_mmap_status to be mmap()ed, but it appears to be the rare case where two mistakes cancel out and we don't have to change the mmap code.
Arnd