• Heiko Carstens's avatar
    s390/compat: fix mmap compat system calls · e8587121
    Heiko Carstens authored
    The native 31 bit and the compat behaviour for the mmap system calls differ:
    
    In native 31 bit mode the passed in address for the mmap system call will be
    unmodified passed to sys_mmap_pgoff().
    In compat mode however the passed in address will be modified with
    compat_ptr() which masks out the most significant bit.
    
    The result is that in native 31 bit mode each mmap request (with MAP_FIXED)
    will fail where the most significat bit is set, while in compat mode it
    may succeed.
    
    This odd behaviour was introduced with d3815898 "[S390] mmap: add missing
    compat_ptr conversion to both mmap compat syscalls".
    
    To restore a consistent behaviour accross native and compat mode this
    patch functionally reverts the above mentioned commit.
    
    Cc: stable@vger.kernel.org
    Signed-off-by: default avatarHeiko Carstens <heiko.carstens@de.ibm.com>
    Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
    e8587121
compat_linux.c 16.6 KB