• Linus Torvalds's avatar
    x86: get rid of 'rtype' argument to __get_user_asm() macro · 7da63b3d
    Linus Torvalds authored
    This is the exact same thing as 36807856 ("x86: get rid of 'rtype'
    argument to __put_user_goto() macro") except it's about __get_user_asm()
    rather than __put_user_goto().
    
    The reasons are the same: having the low-level asm access the argument
    with a different size than the compiler thinks it does is fundamentally
    wrong.
    
    But unlike the __put_user_goto() case, we actually did tell the compiler
    that we used a bigger variable (either long or long long), and then only
    filled in the low bits, and ended up "fixing" this by casting the result
    to the proper pointer type.
    
    That's because we needed to use a non-qualified type (the user pointer
    might be a const pointer!), and that makes this a bit more painful.  Our
    '__inttype()' macro used to be lazy and only differentiate between "fits
    in a register" or "needs two registers".
    
    So this fix had to also make that '__inttype()' macro more precise.
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    7da63b3d
uaccess.h 15.5 KB