On Sat, Jan 7, 2023 at 1:10 AM Kirill A. Shutemov <kirill@xxxxxxxxxxxxx> 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