1. 06 3月, 2014 3 次提交
    • H
      s390/compat: build error for large compat syscall args · 9a205286
      Heiko Carstens 提交于
      Enforce 32 bit types for all compat syscall argument types.
      
      This way we can make sure that all arguments get correct sign
      or zero extension. Otherwise incorrect code would be generated.
      
      E.g. for a 'long' type the COMPAT_SYSCALL_DEFINE macro wouldn't
      generate code that would cause sign extension of the passed in 32
      bit user space parameter.
      This can cause quite subtle bugs like e.g. the one that was fixed
      with dfd948e3 "fs/compat: fix parameter handling for compat
      readv/writev syscalls".
      Signed-off-by: NHeiko Carstens <heiko.carstens@de.ibm.com>
      9a205286
    • H
      fs/compat: convert to COMPAT_SYSCALL_DEFINE with changing parameter types · 932602e2
      Heiko Carstens 提交于
      Some fs compat system calls have unsigned long parameters instead of
      compat_ulong_t.
      In order to allow the COMPAT_SYSCALL_DEFINE macro generate code that
      performs proper zero and sign extension convert all 64 bit parameters
      their corresponding 32 bit counterparts.
      
      compat_sys_io_getevents() is a bit different: the non-compat version
      has signed parameters for the "min_nr" and "nr" parameters while the
      compat version has unsigned parameters.
      So change this as well. For all practical purposes this shouldn't make
      any difference (doesn't fix a real bug).
      Also introduce a generic compat_aio_context_t type which can be used
      everywhere.
      The access_ok() check within compat_sys_io_getevents() got also removed
      since the non-compat sys_io_getevents() should be able to handle
      everything anyway.
      Signed-off-by: NHeiko Carstens <heiko.carstens@de.ibm.com>
      932602e2
    • H
      fs/compat: optional preadv64/pwrite64 compat system calls · 378a10f3
      Heiko Carstens 提交于
      The preadv64/pwrite64 have been implemented for the x32 ABI, in order
      to allow passing 64 bit arguments from user space without splitting
      them into two 32 bit parameters, like it would be necessary for usual
      compat tasks.
      Howevert these two system calls are only being used for the x32 ABI,
      so add __ARCH_WANT_COMPAT defines for these two compat syscalls and
      make these two only visible for x86.
      Signed-off-by: NHeiko Carstens <heiko.carstens@de.ibm.com>
      378a10f3
  2. 04 3月, 2014 26 次提交
  3. 01 3月, 2014 1 次提交
  4. 28 2月, 2014 10 次提交