From nobody Mon Apr 6 09:13:47 2026 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.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 A71491FBC8E for ; Sat, 21 Mar 2026 00:09:52 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=170.10.133.124 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774051795; cv=none; b=XWsLIwEiqyVb/9GJvAa20UBsOGKS3koZdXAbyj/JsLb3BK6CKAY/mQbU3DqvokQ4rOp6LVQy3S3g06nbs/wJEoQa0xDO/U8jyfurTspM4CuCWpobepcsLa3V5yeEarMyad2SOO9NIeSMO/2AExOxzI3pqkw3dp+jD+ICixOEm5Y= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774051795; c=relaxed/simple; bh=7NaJbF+V2W5Ta2GDLeEGbucPkdKKkGGF8s6b1G42ECo=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=Ou/XdD/VSW/bov+gEqfcogh2UzDQ/vzD/U8Gf8kqV+x0GZLx0DQyZivB5MBA2G9dPIHBWF79ojyzQnT4DbBvqPq3PCd+Vo+enGt5rDvdCoIqNBSHdDKQy/2KD+rLma5p+QP6x5wRi5fpbZ64QkW+2YfK7No3M0iGXsP5PvDPCCk= 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=acHecEud; dkim=pass (2048-bit key) header.d=redhat.com header.i=@redhat.com header.b=SVSM7fAU; arc=none smtp.client-ip=170.10.133.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="acHecEud"; dkim=pass (2048-bit key) header.d=redhat.com header.i=@redhat.com header.b="SVSM7fAU" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1774051791; 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=DBpdMV64mgMJLmufv84JnT4W5g24GEtGQX6G/w72xZk=; b=acHecEudkbqStrAmMI4SoKJHFMyNDRGT/E3pvWmQNqa9CVTUYx5lpXNYJfM/y1onnfBFkt 0ZCY4zVXMDEeuYVizTtC7ZSrBMEgS8DO+JJcNqHvZCdClBIoUAwcOzHst4DQl7mqwMMSvs tgruBX1jkkNMoAiYDYyb50W4j249UkI= Received: from mail-wm1-f70.google.com (mail-wm1-f70.google.com [209.85.128.70]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-674-PsXA-3WmNPu95UILxVWulg-1; Fri, 20 Mar 2026 20:09:50 -0400 X-MC-Unique: PsXA-3WmNPu95UILxVWulg-1 X-Mimecast-MFC-AGG-ID: PsXA-3WmNPu95UILxVWulg_1774051789 Received: by mail-wm1-f70.google.com with SMTP id 5b1f17b1804b1-486fe3b9441so13399185e9.3 for ; Fri, 20 Mar 2026 17:09:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=google; t=1774051788; x=1774656588; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=DBpdMV64mgMJLmufv84JnT4W5g24GEtGQX6G/w72xZk=; b=SVSM7fAUakqXcRmlOu94NTAtvNWl3b84CW72J/PBLOQwXsXl037L2emYA722VzXe5/ OSCZwbXTTYkP/znpwve1eeCkq++ZAM8KLwh5j1D5G3klGuFO98zuL9Uf3TL6/RvAREgg xmEQEc3RxNkZhXRX4lIxD3QSWCX/67YKcsvxWKsC5qIKrZuyidTDjM6BXisVBgmh8qSw wfpEqv02yhOdulmC83BZdnb1vyQvMTDcqCxXmaliySxbSPQTbGgsj0UPRmy+WrtNKV3P Ina6bWy4uOIaQ+KS0bk0qrX6wEhdc6Wh8buUanwAx9i8W9TcOiuWZ6vWnRZstUpZij73 JBmQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774051788; x=1774656588; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=DBpdMV64mgMJLmufv84JnT4W5g24GEtGQX6G/w72xZk=; b=Ak3VdBeJT+Xz49KTSsa1VVvhFGDUTetCxdJTSz2al30ZMFKCLTx7mwunifHvGCZqLl 4TfqGI31q83tLC9aaOHbv5C9EPnJQAq20jLeK31XruzzpD+eklT6EWWyVUjxEuQ/4ojL kOpMZTZ+E1GB8kD9IphLmvNJ3rdDz5AO5xg6rhPWHwh6ukFxixcGrMEh6iBzkc8UTsWT sIbUeD1GGApGoBxkwbAiHzbZEtVwaqtdic+rLdvh1R7T70SddvCz0O7h6kvBlJMELXNF iz3cutg/5ofZeajKZhieO5QBB0p5X65h2/C26xM4P9T792n0LLafowarvqB9f8papThM 1ceg== X-Gm-Message-State: AOJu0YzBh4rPRSOW/I9X0gNx0/stoM+PZg7gGwlcZrXdibBiYWon2thS o7Z1TInReMKgMDPy9eIMBtwPZywx1SR0mSZNe2i4BnF53p3Pt5q1pA1dsuHve8g0o9ECOnyWrVp u4iKClXkP5HXapB5zflMuGC5lyKgem+bVlh6415ru4gUOmI6qBYVykUjRRurwQxA1vYXrvKtmp1 U2TV9/O4Qz94KAVUkJIG5HB3YwzDYJZx+tgkHGcpXHGWGvQq8WbQ== X-Gm-Gg: ATEYQzyrovljKcGb++Fv/zl/Q3MurfjZXs+J2btpkU/+kL68cFvEDdcsg8VNjY1q33i y28JA312116oBKu5kqSm9904OaFwzoJ3SG4RC86SABbNxTp4RPBA4kk7VR7y7eOCT9d9HZMl2Ln W6Fh5ukjgzRrgIV+pZDf/vG0StL04P3cDLA5cvbtrkdJarQjL8YSLED659aybFYDcH8gJVlC2pT Z6qMh1DWKH6hGOVUEFVfKe3fVaWRTJEhYuXAmNgOZ4NvQTa7WbigtiFttaeMmstmjqFHTxIdsTI jcQYHPu+KnUutDNFYpbY0oiN90KTbm6Er9jaQQaU84/iMdFC+nTd2yV8ohg8kkMio1PKij+oHOG 2GDMdfocQZP3lnje4X/NwHliGZdVj9tREkjFy12+hi7Kq3K+0nPqV0PJeytKlPePoLWdtp1AWr9 Ifg5pTyqWtC3VRFrPYO2bUOw3C X-Received: by 2002:a05:600c:a4a:b0:486:fe83:8621 with SMTP id 5b1f17b1804b1-486fee1ab20mr57041625e9.23.1774051788438; Fri, 20 Mar 2026 17:09:48 -0700 (PDT) X-Received: by 2002:a05:600c:a4a:b0:486:fe83:8621 with SMTP id 5b1f17b1804b1-486fee1ab20mr57041365e9.23.1774051787979; Fri, 20 Mar 2026 17:09:47 -0700 (PDT) Received: from [192.168.10.48] ([151.49.85.67]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-486fe7d6c54sm236718365e9.4.2026.03.20.17.09.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 20 Mar 2026 17:09:46 -0700 (PDT) From: Paolo Bonzini To: linux-kernel@vger.kernel.org, kvm@vger.kernel.org Cc: Jon Kohler , Marcelo Tosatti , Nikunj A Dadhania , Amit Shah , Sean Christopherson Subject: [PATCH 06/22] KVM: x86/mmu: merge make_spte_{non,}executable Date: Sat, 21 Mar 2026 01:09:15 +0100 Message-ID: <20260321000931.1947084-7-pbonzini@redhat.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260321000931.1947084-1-pbonzini@redhat.com> References: <20260321000931.1947084-1-pbonzini@redhat.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" As the logic will become more complicated with the introduction of MBEC, at least write it only once. Signed-off-by: Paolo Bonzini --- arch/x86/kvm/mmu/spte.c | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/arch/x86/kvm/mmu/spte.c b/arch/x86/kvm/mmu/spte.c index df31039b5d63..e2acd9ed9dba 100644 --- a/arch/x86/kvm/mmu/spte.c +++ b/arch/x86/kvm/mmu/spte.c @@ -317,14 +317,15 @@ static u64 modify_spte_protections(u64 spte, u64 set,= u64 clear) return spte; } =20 -static u64 make_spte_executable(u64 spte) +static u64 make_spte_executable(u64 spte, u8 access) { - return modify_spte_protections(spte, shadow_x_mask, shadow_nx_mask); -} - -static u64 make_spte_nonexecutable(u64 spte) -{ - return modify_spte_protections(spte, shadow_nx_mask, shadow_x_mask); + u64 set, clear; + 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); } =20 /* @@ -356,8 +357,8 @@ u64 make_small_spte(struct kvm *kvm, u64 huge_spte, * the page executable as the NX hugepage mitigation no longer * applies. */ - 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 make_spte_executable(child_spte, role.access); } =20 return child_spte; @@ -379,7 +380,7 @@ u64 make_huge_spte(struct kvm *kvm, u64 small_spte, int= level) huge_spte &=3D KVM_HPAGE_MASK(level) | ~PAGE_MASK; =20 if (is_nx_huge_page_enabled(kvm)) - huge_spte =3D make_spte_nonexecutable(huge_spte); + huge_spte =3D make_spte_executable(huge_spte, 0); =20 return huge_spte; } --=20 2.52.0