On Fri, Jun 10, 2022 at 4:35 PM Kirill A. Shutemov <kirill.shutemov@xxxxxxxxxxxxxxx> wrote: > > Intel Linear Address Masking (LAM) brings per-mm untagging rules. Pass > down mm_struct to the untagging helper. It will help to apply untagging > policy correctly. > > In most cases, current->mm is the one to use, but there are some > exceptions, such as get_user_page_remote(). Wouldn't it be easier to keep using current->mm in untagged_addr(addr) by default, and introduce a separate macro for the exceptions? > > +/* > + * Architectures that support memory tagging (assigning tags to memory regions, > + * embedding these tags into addresses that point to these memory regions, and > + * checking that the memory and the pointer tags match on memory accesses) > + * redefine this macro to strip tags from pointers. > + * It's defined as noop for architectures that don't support memory tagging. > + */ > +#ifndef untagged_addr > +#define untagged_addr(mm, addr) (addr) > +#endif The comment above should probably be extended to explain the effect of `mm`. -- Alexander Potapenko Software Engineer Google Germany GmbH Erika-Mann-Straße, 33 80636 München Geschäftsführer: Paul Manicle, Liana Sebastian Registergericht und -nummer: Hamburg, HRB 86891 Sitz der Gesellschaft: Hamburg Diese E-Mail ist vertraulich. Falls Sie diese fälschlicherweise erhalten haben sollten, leiten Sie diese bitte nicht an jemand anderes weiter, löschen Sie alle Kopien und Anhänge davon und lassen Sie mich bitte wissen, dass die E-Mail an die falsche Person gesendet wurde. This e-mail is confidential. If you received this communication by mistake, please don't forward it to anyone else, please erase all copies and attachments, and please let me know that it has gone to the wrong person.