• Heiko Carstens's avatar
    s390/uaccess: get_user() should zero on failure (again) · d09c5373
    Heiko Carstens authored
    Commit fd2d2b19 ("s390: get_user() should zero on failure")
    intended to fix s390's get_user() implementation which did not zero
    the target operand if the read from user space faulted. Unfortunately
    the patch has no effect: the corresponding inline assembly specifies
    that the operand is only written to ("=") and the previous value is
    discarded.
    
    Therefore the compiler is free to and actually does omit the zero
    initialization.
    
    To fix this simply change the contraint modifier to "+", so the
    compiler cannot omit the initialization anymore.
    
    Fixes: c9ca7841 ("s390/uaccess: provide inline variants of get_user/put_user")
    Fixes: fd2d2b19 ("s390: get_user() should zero on failure")
    Cc: stable@vger.kernel.org
    Cc: Al Viro <viro@zeniv.linux.org.uk>
    Signed-off-by: default avatarHeiko Carstens <heiko.carstens@de.ibm.com>
    Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
    d09c5373
uaccess.h 11.2 KB