• Arnd Bergmann's avatar
    compat_ioctl: remove translation for sound ioctls · 2022ca0a
    Arnd Bergmann authored
    The SNDCTL_* and SOUND_* commands are the old OSS user interface.
    
    I checked all the sound ioctl commands listed in fs/compat_ioctl.c
    to see if we still need the translation handlers. Here is what I
    found:
    
    - sound/oss/ is (almost) gone from the kernel, this is what actually
      needed all the translations
    - The ALSA emulation for OSS correctly handles all compat_ioctl
      commands already.
    - sound/oss/dmasound/ is the last holdout of the original OSS code,
      this is only used on arch/m68k, which has no 64-bit mode and
      hence needs no compat handlers
    - arch/um/drivers/hostaudio_kern.c may run in 64-bit mode with
      32-bit x86 user space underneath it. This rare corner case is
      the only one that still needs the compat handlers.
    
    By adding a simple redirect of .compat_ioctl to .unlocked_ioctl in the
    UML driver, we can remove all the COMPATIBLE_IOCTL() annotations without
    a change in functionality. For completeness, I'm adding the same thing
    to the dmasound file, knowing that it makes no difference.
    
    The compat_ioctl list contains one comment about SNDCTL_DSP_MAPINBUF and
    SNDCTL_DSP_MAPOUTBUF, which actually would need a translation handler
    if implemented. However, the native implementation just returns -EINVAL,
    so we don't care.
    Reviewed-by: default avatarTakashi Iwai <tiwai@suse.de>
    Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
    2022ca0a
compat_ioctl.c 18 KB