From: Borislav Petkov > Sent: 27 July 2017 15:59 > On Mon, Jul 24, 2017 at 02:07:47PM -0500, Brijesh Singh wrote: > > From: Tom Lendacky <thomas.lendacky@xxxxxxx> > > > > The current code checks only for sme_active() when determining whether > > to perform the encryption attribute change. Include sev_active() in this > > check so that memory attribute changes can occur under SME and SEV. > > > > Signed-off-by: Tom Lendacky <thomas.lendacky@xxxxxxx> > > Signed-off-by: Brijesh Singh <brijesh.singh@xxxxxxx> > > --- > > arch/x86/mm/pageattr.c | 4 ++-- > > 1 file changed, 2 insertions(+), 2 deletions(-) > > > > diff --git a/arch/x86/mm/pageattr.c b/arch/x86/mm/pageattr.c > > index dfb7d65..b726b23 100644 > > --- a/arch/x86/mm/pageattr.c > > +++ b/arch/x86/mm/pageattr.c > > @@ -1781,8 +1781,8 @@ static int __set_memory_enc_dec(unsigned long addr, int numpages, bool enc) > > unsigned long start; > > int ret; > > > > - /* Nothing to do if the SME is not active */ > > - if (!sme_active()) > > + /* Nothing to do if SME and SEV are not active */ > > + if (!sme_active() && !sev_active()) > > This is the second place which does > > if (!SME && !SEV) > > I wonder if, instead of sprinking those, we should have a > > if (mem_enc_active()) > > or so which unifies all those memory encryption logic tests and makes > the code more straightforward for readers who don't have to pay > attention to SME vs SEV ... If any of the code paths are 'hot' it would make sense to be checking a single memory location. David ��.n��������+%������w��{.n�����{����*jg��������ݢj����G�������j:+v���w�m������w�������h�����٥