From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id AED903B6348 for ; Tue, 2 Jun 2026 14:22:11 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=170.10.129.124 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780410133; cv=none; b=Yu1jrskn4oRRqFtzSY9MZ1H23NMLvwY7tVR+WdBdRu+tFmZSfqYEIJ1M4+02Zf0mZlpfZ9poBb32fKBQUm7g6p7t0WM2J8r1b2aks0BQ9h1SdhL3hDG4ZbDiTOY4nxq75flcu1dCFFhpi6mpx8VHDxWmRIGLFBZj3ecZZG0HRIs= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780410133; c=relaxed/simple; bh=ShZdTUuAEEKLmhw+r+CFUy9KzlV3PYlt2MquaVa7urQ=; h=Message-ID:Subject:From:To:Cc:Date:In-Reply-To:References: Content-Type:MIME-Version; b=CVsDeCv8ZPyYPyjR6oYyNG8q+Hv60+BAAnQniYpOj/svTX93N4uUJ1JCuTCAZf+pcoQu/Vs/FuSR2MOgNYhOUPpkfwyhh4/1XKXVJv5GFkOld7uKY94vWgroG73Ro8vxYiEIA1XXUZbansrUTaDvP159PMVjKj7GKh+RDtChpK4= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=redhat.com; spf=pass smtp.mailfrom=redhat.com; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b=h6N9fRxX; dkim=pass (2048-bit key) header.d=redhat.com header.i=@redhat.com header.b=d07fxiDk; arc=none smtp.client-ip=170.10.129.124 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=redhat.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=redhat.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="h6N9fRxX"; dkim=pass (2048-bit key) header.d=redhat.com header.i=@redhat.com header.b="d07fxiDk" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1780410130; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=HmhbodaRtIHg+0Z0GxXZqH1SFjbgDpBEbtnjJeZEU2g=; b=h6N9fRxXNpRpxKBsHQwvQocV88Mh+MzTONrgJx4mIcNkSdzUzP3QEYv0MmEjWDAXTlCYbc tFBcWX0mMxUlkXnyBl1SK9ezqYnOz3Nro+oKZ+hTstZEhwJniwEGxRMYcIHPq6OkTUU9g3 +fX6YsEEK2Z9ZSVEOjrDEC0b3h4hL5A= Received: from mail-vs1-f70.google.com (mail-vs1-f70.google.com [209.85.217.70]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-9-gPaK6JoBM-aZwpK_DvA-yg-1; Tue, 02 Jun 2026 10:22:09 -0400 X-MC-Unique: gPaK6JoBM-aZwpK_DvA-yg-1 X-Mimecast-MFC-AGG-ID: gPaK6JoBM-aZwpK_DvA-yg_1780410128 Received: by mail-vs1-f70.google.com with SMTP id ada2fe7eead31-6cff652cc58so4577713137.3 for ; Tue, 02 Jun 2026 07:22:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=google; t=1780410128; x=1781014928; darn=vger.kernel.org; h=mime-version:user-agent:content-transfer-encoding:references :in-reply-to:date:cc:to:from:subject:message-id:from:to:cc:subject :date:message-id:reply-to; bh=HmhbodaRtIHg+0Z0GxXZqH1SFjbgDpBEbtnjJeZEU2g=; b=d07fxiDkGORGWBnGVHrRgzDg3uOWT0LXK2b62EyreW0UygCSXH3wWghK+rKnDi1VH1 /3xlWaVVu4ME/QBtDgVPodtwms6aX1lgtQVSYLBO+J97oKIA6UVFLQNcg0LlzNOT8FKz w1Y/lQ4I2yQZejGH4+fR2/u/KKKD2hiagq87x+z1mOD5afQ/mPQa+0tUAMQNiCijg5WS AXR2yF/0Nx4dgdL0s+hBzOInJbI867Q+LX2nKACWs5FtnoM/imahos4BqaIo3Jr88ZSV lkLg5uAOgAZczw6l8zEkzsLMK4t5Bxbvw0Hay6G74sWyUZsM8IH1xAx27AGB1g0/e1jp urOg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780410128; x=1781014928; h=mime-version:user-agent:content-transfer-encoding:references :in-reply-to:date:cc:to:from:subject:message-id:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=HmhbodaRtIHg+0Z0GxXZqH1SFjbgDpBEbtnjJeZEU2g=; b=gWn6H1lZ9TOjCGntBf5GlA9/NPnxw/C1UkYsHphynCv2JEvaOphAvXN2a1m4t8vd7t fSn2xHr1uSM6n7aeFj3iUHBA3TfVgfi3EsGvH8L+VdbDIVdtY7pm6g4kNbl1azTUl9AO XZqe2D6ao9PMOi21XpNJGcqL6UuS7hXZm+rqRCYar2XPWLmjWr6yxaY0vvqI3sT5X4UY iH6j2UFT19aWgxTt0j7BL5rvNX/UDdQL8bOKgbmO3/By1UwWp1lfCaVg2RuzzGl87LJV 3mvgUl3zK5tm74UOg4u/luDTliDRrcw0ifIZKeRthzj9Og/HfSGFWhFdp+CZHwXSEfd+ kNiQ== X-Forwarded-Encrypted: i=1; AFNElJ9x+xNy/qzLRt2TuP/E+rAryVVslVYjmz1UkCZH4NRgUwyHnFuVmH5xKBRK/SYQDbHUxmMOi7qu8yTmosA=@vger.kernel.org X-Gm-Message-State: AOJu0Yz03fDp/vuSJGN2rfqRRy4jWGMgjPnnN5mdfy+wP3I9VS2gUR8m e+/kSjGkX1ZU61Uqt7e9vb74eCtEcKmGwACW/IA3Qpm3yWlJEeHi10pXqZek/0ZVf3SyXuYjmk4 fP0cR7ANQrs8+/tW8xrIulGdoJ46Gwye5uKwyT1pgPFkWOP7lmGLDjT41hYuhm4E9fQ== X-Gm-Gg: Acq92OG5o9KzwllwrsSHiPuAmkAVKcHuNli/joDGAVtw0RprZ4gtsWnUJnhZHPQlLk6 TcDNMsDOHeB7qOxrKZ7+6kmlo6U2On8qElRNbu57Mgaq8k7fOb9BCMS/lDFhjM6UMOVERhRcSaH bej3ez7JvzOFfjz7gk6kMm3J2cEhOnmqwYgAwHsH2OYba/eakRjJQSzpXz9zn4GSDFABd6uqJdP zZrKEYAOO8Mp9bfVRYC9ZYuZh3KVQmLi4bV2KtntFoEy3/sLBihCn/RNuGco2mQ2VvFKPUdssRu 4WtzI1Cb9DBO5PP3wSRI0tVQi5QGdNo0u/jG+sXFU4O5s87SBBhe0hW1/LniHpd9OlsDWpH7s1W caj9BDr8podTqTNj7HrhB4Lka+0x2ojWuptgWRiw= X-Received: by 2002:a05:6102:55d2:b0:6cf:f288:f36b with SMTP id ada2fe7eead31-6cff288fc89mr4625038137.13.1780410128048; Tue, 02 Jun 2026 07:22:08 -0700 (PDT) X-Received: by 2002:a05:6102:55d2:b0:6cf:f288:f36b with SMTP id ada2fe7eead31-6cff288fc89mr4624998137.13.1780410127602; Tue, 02 Jun 2026 07:22:07 -0700 (PDT) Received: from intellaptop.lan ([2607:fea8:fc01:88aa:f1de:f35:7935:804f]) by smtp.gmail.com with ESMTPSA id 6a1803df08f44-8ccea1c30ecsm119506336d6.25.2026.06.02.07.22.06 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 02 Jun 2026 07:22:07 -0700 (PDT) Message-ID: Subject: Re: [PATCH 06/28] KVM: x86/mmu: merge make_spte_{non,}executable From: mlevitsk@redhat.com To: Paolo Bonzini , linux-kernel@vger.kernel.org, kvm@vger.kernel.org Cc: d.riley@proxmox.com, jon@nutanix.com Date: Tue, 02 Jun 2026 10:22:06 -0400 In-Reply-To: <20260505195226.563317-7-pbonzini@redhat.com> References: <20260505195226.563317-1-pbonzini@redhat.com> <20260505195226.563317-7-pbonzini@redhat.com> Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable User-Agent: Evolution 3.52.4 (3.52.4-2.fc40) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 On Tue, 2026-05-05 at 21:52 +0200, Paolo Bonzini wrote: > As the logic will become more complicated with the introduction > of MBEC, at least write it only once. >=20 > Tested-by: David Riley > Signed-off-by: Paolo Bonzini > --- > =C2=A0arch/x86/kvm/mmu/spte.c | 20 +++++++++++--------- > =C2=A01 file changed, 11 insertions(+), 9 deletions(-) >=20 > diff --git a/arch/x86/kvm/mmu/spte.c b/arch/x86/kvm/mmu/spte.c > index 85a0473809b0..849a1c1c92b5 100644 > --- a/arch/x86/kvm/mmu/spte.c > +++ b/arch/x86/kvm/mmu/spte.c > @@ -317,14 +317,16 @@ static u64 modify_spte_protections(u64 spte, u64 se= t, u64 clear) > =C2=A0 return spte; > =C2=A0} > =C2=A0 > -static u64 make_spte_executable(u64 spte) > +static u64 change_spte_executable(u64 spte, u8 access) Minor nitpick: to be honest this is a bit less readable, but overall, I am = not against this change. Can we add a comment though about what values the 'access' can take? or even better, add an assert? > =C2=A0{ > - return modify_spte_protections(spte, shadow_x_mask, shadow_nx_mask); > -} > + u64 set, clear; > =C2=A0 > -static u64 make_spte_nonexecutable(u64 spte) > -{ > - return modify_spte_protections(spte, shadow_nx_mask, shadow_x_mask); > + if (access & ACC_EXEC_MASK) > + set =3D shadow_x_mask; > + else > + set =3D shadow_nx_mask; > + clear =3D set ^ (shadow_nx_mask | shadow_x_mask); > + return modify_spte_protections(spte, set, clear); > =C2=A0} > =C2=A0 > =C2=A0/* > @@ -356,8 +358,8 @@ u64 make_small_spte(struct kvm *kvm, u64 huge_spte, > =C2=A0 * the page executable as the NX hugepage mitigation no longer > =C2=A0 * applies. > =C2=A0 */ > - if ((role.access & ACC_EXEC_MASK) && is_nx_huge_page_enabled(kvm)) > - child_spte =3D make_spte_executable(child_spte); > + if (is_nx_huge_page_enabled(kvm)) > + child_spte =3D change_spte_executable(child_spte, role.access); > =C2=A0 } > =C2=A0 > =C2=A0 return child_spte; > @@ -379,7 +381,7 @@ u64 make_huge_spte(struct kvm *kvm, u64 small_spte, i= nt level) > =C2=A0 huge_spte &=3D KVM_HPAGE_MASK(level) | ~PAGE_MASK; > =C2=A0 > =C2=A0 if (is_nx_huge_page_enabled(kvm)) > - huge_spte =3D make_spte_nonexecutable(huge_spte); > + huge_spte =3D change_spte_executable(huge_spte, 0); > =C2=A0 > =C2=A0 return huge_spte; > =C2=A0} Reviewed-by: Maxim Levitsky Best regards, Maxim Levitsky