* Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx> wrote: > On Fri, May 12, 2017 at 11:57 PM, Al Viro <viro@xxxxxxxxxxxxxxxxxx> wrote: > > > > First, some stats: there's a thousand-odd callers of __get_user(). Out of > > those, about 70% are in arch/, mostly in sigframe-related code. > > Sure. And they can be trivially converted, and none of them should care at all. > > > IOW, we have > > * most of users in arch/* (heavily dominated by signal-related code, > > both loads and stores). Those need careful massage; maybe unsafe-based > > solution, maybe something else, but it's obviously per-architecture work > > and these paths are sensitive. > > Why are they sensitive? > > Why not just do this: > > git grep -l '\<__\(\(get\)\|\(put\)\)_user(' -- arch/x86 > :^arch/x86/include/asm/uaccess.h > | xargs sed -i 's/__\(\(\(get\)\|\(put\)\)_user(\)/\1/g' > > which converts all the x86 uses in one go. > > Anybody who *relies* on not checking the address_limit is so broken as > to be not even funny. And anything that is so performance-sensitive > that anybody can even measure the effect of the above we can convert > later. I'd say that the CLAC/STAC addition pretty much killed any argument in favor of "optimized" __get_user() code, so I'd be very happy to see these interfaces gone altogether. So as far as x86 usage goes: Acked-by: Ingo Molnar <mingo@xxxxxxxxxx> Thanks, Ingo