| Subject | Re: [PATCHv5 11/19] x86/mm: Implement vma_keyid() | From | Dave Hansen <> | Date | Wed, 18 Jul 2018 16:40:14 -0700 |
| |
> --- a/arch/x86/mm/mktme.c > +++ b/arch/x86/mm/mktme.c > @@ -1,3 +1,4 @@ > +#include <linux/mm.h> > #include <asm/mktme.h> > > phys_addr_t mktme_keyid_mask; > @@ -37,3 +38,14 @@ struct page_ext_operations page_mktme_ops = { > .need = need_page_mktme, > .init = init_page_mktme, > }; > + > +int vma_keyid(struct vm_area_struct *vma) > +{ > + pgprotval_t prot; > + > + if (!mktme_enabled()) > + return 0; > + > + prot = pgprot_val(vma->vm_page_prot); > + return (prot & mktme_keyid_mask) >> mktme_keyid_shift; > +}
I'm a bit surprised this isn't inlined. Not that function calls are expensive, but we *could* entirely avoid them using the normal pattern of:
// In the header: static inline vma_keyid(...) { if (!mktme_enabled()) return 0;
return __vma_keyid(...); // <- the .c file version }
|