Re: [PATCH] x86/uaccess: Implement get_kernel()

From: Linus Torvalds
Date: Fri Apr 10 2015 - 14:09:44 EST

On Fri, Apr 10, 2015 at 11:04 AM, Ingo Molnar <mingo@xxxxxxxxxx> 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..

>> #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.

To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at
Please read the FAQ at