Messages in this thread | | | Date | Fri, 10 Apr 2015 11:09:37 -0700 | Subject | Re: [PATCH] x86/uaccess: Implement get_kernel() | From | Linus Torvalds <> |
| |
On Fri, Apr 10, 2015 at 11:04 AM, Ingo Molnar <mingo@kernel.org> wrote: > >> >> So maybe "get_kernel_stalepointer()" or something like that. > > Ok.
Note that I'm not at all married to that particular name, I just want something that describes the requirements a bit more.
>> - I think we should look at sharing the code for __get_user(). Could >> we do something like this: >> >> (a) implement the basic "load with exceptions" as __get_with_exception() >> (b) #define get_kernel_stalepointer() __get_with_exception >> (c) make "__get_user()" be "stac(); __get_with_exception(); clac()" > > Will try. > > The only possible complication there might be the way we don't recover > the error code in the _ex() variants, that's actually a pretty > important aspect to making this zero cost.
Yeah. You may be right. What I would really want is that "asm goto" with an output register, but gcc doesn't do that. Then we could improve on the whole try/catch thing too, so that it would just jump to the catch..
>> #ifdef CONFIG_DEBUG_PAGEALLOC >> #define get_kernel_stalepointer(x,ptr) ((x)=READ_ONCE(*(ptr)), 0) >> #else >> #define get_kernel_stalepointer(x,ptr) __get_with_exception(x,ptr) >> #endif > > I guess you meant that to be the other way around?
Yes I did.
Linus
| |