On Fri, Jun 17, 2022 at 05:27:46PM +0200, Alexander Potapenko wrote: > 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? I don't think it is a good idea. Explicit mm forces writer to consider what mm she wants to use in the particular case. > > +/* > > + * 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`. Sure, will update. -- Kirill A. Shutemov