• Andrew Morton's avatar
    [PATCH] s390: 32 bit ioctl emulation fixes. · b72570f1
    Andrew Morton authored
    From: Martin Schwidefsky <schwidefsky@de.ibm.com>
    
    - audit all 32 bit pointer accesses and make them use compat_ioctl(),
      because of the necessary conversion on s390
    - introduce ULONG_IOCTL() which is used instead of COMPATIBLE_IOCTL()
      for all ioctls that have their argument encoded in 'arg' instead
      of the memory pointed to by arg. Same reason as above.
    - remove most #ifdefs in <linux/compat_ioctl.h>: They don't make
      any sense if the respective handlers in fs/compat_ioctl.c are
      not disabled as well and they are potentially harmful (the
      CONFIG_BLK_DEV_DM e.g. was insufficient).
    - comment out  COMPATIBLE_IOCTL(SIOCSIFBR) and
      COMPATIBLE_IOCTL(SIOCGIFBR), they appear to require a handler
    - implement copy_in_user for s390, as needed for many handlers in
      fs/compat_ioctl.c
    - get rid of all duplicate stuff in arch/s390/kernel/compat_ioctl.c
      that is also in fs/compat_ioctl.c
    b72570f1
compat_ioctl.c 88.5 KB