• Linus Torvalds's avatar
    Clean up x86 unsafe_get/put_user() type handling · 334a023e
    Linus Torvalds authored
    Al noticed that unsafe_put_user() had type problems, and fixed them in
    commit a7cc722f ("fix unsafe_put_user()"), which made me look more
    at those functions.
    
    It turns out that unsafe_get_user() had a type issue too: it limited the
    largest size of the type it could handle to "unsigned long".  Which is
    fine with the current users, but doesn't match our existing normal
    get_user() semantics, which can also handle "u64" even when that does
    not fit in a long.
    
    While at it, also clean up the type cast in unsafe_put_user().  We
    actually want to just make it an assignment to the expected type of the
    pointer, because we actually do want warnings from types that don't
    convert silently.  And it makes the code more readable by not having
    that one very long and complex line.
    
    [ This patch might become stable material if we ever end up back-porting
      any new users of the unsafe uaccess code, but as things stand now this
      doesn't matter for any current existing uses. ]
    
    Cc: Al Viro <viro@zeniv.linux.org.uk>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    334a023e
uaccess.h 21.2 KB