Messages in this thread |  | | From | Linus Torvalds <> | Date | Sat, 7 Jan 2023 09:28:10 -0800 | Subject | Re: [PATCHv13 05/16] x86/uaccess: Provide untagged_addr() and remove tags before address check |
| |
On Sat, Jan 7, 2023 at 1:10 AM Kirill A. Shutemov <kirill@shutemov.name> wrote: > > On Fri, Dec 30, 2022 at 04:42:05PM -0800, Linus Torvalds wrote: > > in ex_handler_uaccess() for the GP trap that users can now cause by > > giving a non-canonical address with the high bit clear. So we'd > > probably just want a new EX_TYPE_* for these cases, but that still > > looks fairly straightforward. > > Plain _ASM_EXTABLE() seems does the trick.
Ack, for some reason I stupidly thought we'd have to change the _ASM_EXTABLE_UA logic.
Thanks for setting me straight.
> Here's what I've come up with:
This looks good to me. And I like how you've used assembler macros instead of the C preprocessor, it makes things more readable.
I'm personally so unused to asm macros that I never use them (and the same is obviously true of Christoph who did that previous task size thing), but I can appreciate others doing a better job at it.
So ack on this from me (I assume you tested it - hopefully even with LAM), but maybe the x86 maintainers disagree violently?
The one possible downside is that *if* somebody passes non-valid user addresses to get/put_user() intentionally (expecting an EFAULT), we will now handle that much more slowly with a fault. But it would have to be some really crazy use-case, and the normal case should be simpler and faster.
But honestly, to me the upside is mainly "no need to worry about LAM masking in asm code".
Linus
|  |