From: Linus Torvalds
Sent: 14 February 2022 20:24
x86-64 has always(*) used TASK_SIZE_MAX for access_ok(), and the
get_user() assembler implementation does the same.
Side note: we could just check the sign bit instead, and avoid big
constants that way.
The cheap test for most 64bit is (addr | size) >> 62 != 0.
I did some tests last week and the compilers correctly optimise
out constant size.
Doesn't sparc64 still need a wrap test?
Or is that assumed because there is always an unmapped page
and transfer are 'adequately' done on increasing addresses?
David
-
Registered Address Lakeside, Bramley Road, Mount Farm, Milton Keynes, MK1 1PT, UK
Registration No: 1397386 (Wales)