| Subject | Re: [RFC PATCH v4 07/28] x86: Provide general kernel support for memory encryption | From | Dave Hansen <> | Date | Wed, 22 Feb 2017 10:13:00 -0800 |
| |
On 02/16/2017 07:43 AM, Tom Lendacky wrote: > static inline unsigned long pte_pfn(pte_t pte) > { > - return (pte_val(pte) & PTE_PFN_MASK) >> PAGE_SHIFT; > + return (pte_val(pte) & ~sme_me_mask & PTE_PFN_MASK) >> PAGE_SHIFT; > } > > static inline unsigned long pmd_pfn(pmd_t pmd) > { > - return (pmd_val(pmd) & pmd_pfn_mask(pmd)) >> PAGE_SHIFT; > + return (pmd_val(pmd) & ~sme_me_mask & pmd_pfn_mask(pmd)) >> PAGE_SHIFT; > }
Could you talk a bit about why you chose to do the "~sme_me_mask" bit in here instead of making it a part of PTE_PFN_MASK / pmd_pfn_mask(pmd)?
It might not matter, but I'd be worried that this ends up breaking direct users of PTE_PFN_MASK / pmd_pfn_mask(pmd) since they now no longer mask the PFN out of a PTE.
|