From mboxrd@z Thu Jan 1 00:00:00 1970 From: Brijesh Singh Subject: Re: [PATCH v6 2/5] x86/mm: fix sme_populate_pgd() to update page flags Date: Mon, 10 Sep 2018 07:28:08 -0500 Message-ID: <4001638e-6627-7d42-2e72-21c48484022a@amd.com> References: <1536343050-18532-1-git-send-email-brijesh.singh@amd.com> <1536343050-18532-3-git-send-email-brijesh.singh@amd.com> <20180910113645.GB21815@zn.tnic> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Cc: brijesh.singh@amd.com, x86@kernel.org, linux-kernel@vger.kernel.org, kvm@vger.kernel.org, Tom Lendacky , Thomas Gleixner , "H. Peter Anvin" , Paolo Bonzini , Sean Christopherson , =?UTF-8?B?UmFkaW0gS3LEjW3DocWZ?= To: Borislav Petkov Return-path: In-Reply-To: <20180910113645.GB21815@zn.tnic> Content-Language: en-US Sender: linux-kernel-owner@vger.kernel.org List-Id: kvm.vger.kernel.org On 9/10/18 6:36 AM, Borislav Petkov wrote: > On Fri, Sep 07, 2018 at 12:57:27PM -0500, Brijesh Singh wrote: >> Fix sme_populate_pgd() to update page flags if the PMD/PTE entry >> already exists. >> >> Signed-off-by: Brijesh Singh >> Reviewed-by: Tom Lendacky >> Cc: Tom Lendacky >> Cc: kvm@vger.kernel.org >> Cc: Thomas Gleixner >> Cc: Borislav Petkov >> Cc: "H. Peter Anvin" >> Cc: linux-kernel@vger.kernel.org >> Cc: Paolo Bonzini >> Cc: Sean Christopherson >> Cc: kvm@vger.kernel.org >> Cc: "Radim Krčmář" >> --- >> arch/x86/mm/mem_encrypt_identity.c | 6 +----- >> 1 file changed, 1 insertion(+), 5 deletions(-) >> >> diff --git a/arch/x86/mm/mem_encrypt_identity.c b/arch/x86/mm/mem_encrypt_identity.c >> index 92265d3..7659e65 100644 >> --- a/arch/x86/mm/mem_encrypt_identity.c >> +++ b/arch/x86/mm/mem_encrypt_identity.c >> @@ -154,9 +154,6 @@ static void __init sme_populate_pgd_large(struct sme_populate_pgd_data *ppd) >> return; >> >> pmd = pmd_offset(pud, ppd->vaddr); >> - if (pmd_large(*pmd)) >> - return; >> - >> set_pmd(pmd, __pmd(ppd->paddr | ppd->pmd_flags)); >> } >> >> @@ -182,8 +179,7 @@ static void __init sme_populate_pgd(struct sme_populate_pgd_data *ppd) >> return; >> >> pte = pte_offset_map(pmd, ppd->vaddr); >> - if (pte_none(*pte)) >> - set_pte(pte, __pte(ppd->paddr | ppd->pte_flags)); >> + set_pte(pte, __pte(ppd->paddr | ppd->pte_flags)); >> } >> >> static void __init __sme_map_range_pmd(struct sme_populate_pgd_data *ppd) >> -- > This looks like a bugfix to me and as such should be: > > * at the beginning of the series > * contain a Fixes: tag > * contain Cc: > > Right? Based on your advice I  was going to submit this series to stable separately. This particular issue is not affecting anyone right now. The only user to this function is sme_kernel_encrypt() which never updates the PTE/PMD entries.  I can update the commit message like this this to clarify it. Enhance the sme_populate_pgd() to update page flags if the PMD/PTE entry already exists. > With that addressed: > > Reviewed-by: Borislav Petkov >