[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[RFC PATCH v6 32/43] x86/altp2m: Add altp2m_set_view_visibility_locked
- To: <xen-devel@xxxxxxxxxxxxxxxxxxxx>
- From: Rose Spangler <Rose.Spangler@xxxxxxxxxxxxxx>
- Date: Mon, 20 Apr 2026 17:31:55 -0400
- Arc-authentication-results: i=2; mx.microsoft.com 1; spf=pass (sender ip is 40.93.13.59) smtp.rcpttodomain=citrix.com smtp.mailfrom=elektrobit.com; dmarc=pass (p=quarantine sp=none pct=100) action=none header.from=elektrobit.com; dkim=pass (signature was verified) header.d=elektrobit.com; arc=pass (0 oda=1 ltdi=1 spf=[1,1,smtp.mailfrom=elektrobit.com] dmarc=[1,1,header.from=elektrobit.com])
- Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 213.95.148.172) smtp.rcpttodomain=lists.xenproject.org smtp.mailfrom=elektrobit.com; dmarc=pass (p=quarantine sp=none pct=100) action=none header.from=elektrobit.com; dkim=none (message not signed); arc=none (0)
- Arc-message-signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=GH0LWVdYxmiLC0JmFSzNr/w/rCUpu/RM3KGvWGbPMkA=; b=LXqs5u1o6ixgRbILiSEPSX+evGnriQoe10H7gHcqSxzkUlcEcHsPNhR4YOaUK3rgjJaskFDhPEIXI1C4+dVt4u5Wtp+YynAMc4dB4ac6iaF9FCACIKERjzIifqp+at0yUJLoaq0tWSni3xIN/p4a5m1gR1aInaR9+eu+eBoB3J7uVFDOODONHpGXpUjLtfT+XMOSdf/CazWp3+clJzxGQu6bzP7RFRFN46EJjH4z3CSXGAKgBdy5hfoukra2KQ1PpBvkKRjN6lssISuwohPHRVadHxn6foYI7TsGH6JqGJialXfvBuoRDPk84JHrxDLc3f2GBKKxIRB+RZuJWKHHMg==
- Arc-message-signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=GH0LWVdYxmiLC0JmFSzNr/w/rCUpu/RM3KGvWGbPMkA=; b=n+8+9He+uRsj/WpP/h0qTxLVFvCuvdPw++g5qRPbgoG4BEW8OH+Qo+U2m78Dbgh7giqtJx+29/Rtv5mRQgu20cY0mtpU3Pw7kj1MT5LI0PxCLQhGsvMfQEPk0sE+cW6LjmP/zGggyxMZ0Do8hH8eFh3juzmT2pFDrUGxcWUTqWq2vX6JvkwQkiEriNA8yFMr/jiiRuISm9391GqeSCsrpMZAsMiYbg25j8rGtQN2Qpvfq0lXdm04po2EBd4X/t2jywJbUa3oeMhi5/xuQrA2EKDpXhLigwoVR2SJWce4SCekv8uBqYTaJuxumourqVss1lRaUIvbGUTloLElDNjXZw==
- Arc-seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass; b=Jx3zq7ojskYhgTb5A00IkEvLoHnrzmF90+52nEYKiqw9H05ZSWfxnDfB8bcjFFgZAzqAbo7fquz8P0nPcMiQdMczIWt/eRFkSxUT9BsZ00e4JM1DSBFW0Um9MHZl9yGPJ8L4NFfi/DvG1eysz25b/JaobT2bRwMf4ZDd5WJpWLX4n9E1O+hXir2rvkj9Skkp5f8bNv0z7kIbZbAVBgeD+tS8fl7P2PefdaAcvz6ZaWAAMmOfbgd8VeB15mm8D5cDBP8a2R15yBjfkApN5SzOTPJoKWmOCAKISBSbrWvuLjd+fPNm/psW+tpRL3OhYbj/YVOJAJBwn2tb+3TkcPhrRg==
- Arc-seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=EytrO6GapLKFFO+LCZ3jyrZryPT0zvyBtpOypW5isZlRpnAT5qUJujBWjblIko7LvW8vuNQ7HEnTAPCYEE2CAJAUHfcm7iXgtae2oQMACi634Kh/X+xOGWR4BrCjdYM9QcjFggVdnvdgeMS/shv45OysVfw0NpzdXO+2hTmVsIXqClDuyCFZ5Pga4NfWmYeioX1cq8OJcMYDeRzgK+0udzy+x/uf4FwA5NtYaCCtrzQ6tKlyYXGU7BCdugdOpYw68jtaNtwRLfa3vi/KISx9Aeb9dSRIDfO5vWjRBZt9h2MGTfgyP6wSRUB14oFLfzyCxDBBfly9nXzsS9lXsonN0w==
- Authentication-results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=elektrobit.com header.i="@elektrobit.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"; dkim=pass header.s=selector1 header.d=elektrobit.com header.i="@elektrobit.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
- Cc: Rose Spangler <Rose.Spangler@xxxxxxxxxxxxxx>, Jan Beulich <jbeulich@xxxxxxxx>, Andrew Cooper <andrew.cooper3@xxxxxxxxxx>, Roger Pau Monné <roger.pau@xxxxxxxxxx>, Teddy Astie <teddy.astie@xxxxxxxxxx>
- Delivery-date: Mon, 20 Apr 2026 21:33:40 +0000
- List-id: Xen developer discussion <xen-devel.lists.xenproject.org>
This commit splits the altp2m_set_view_visibility into two functions, where
the altp2m_set_view_visibility_locked variant has the preconditions that
the altp2m lock is held. This makes it possible to change a view's
visibility in an architecture independent way in code that already holds
the altp2m lock (namely, altp2m_flush).
This is commit 3/5 of the altp2m view validity/visibility phase.
Signed-off-by: Rose Spangler <Rose.Spangler@xxxxxxxxxxxxxx>
---
v6: Introduced this patch.
---
xen/arch/x86/include/asm/altp2m.h | 4 ++++
xen/arch/x86/mm/altp2m.c | 14 +++++++++++---
2 files changed, 15 insertions(+), 3 deletions(-)
diff --git a/xen/arch/x86/include/asm/altp2m.h
b/xen/arch/x86/include/asm/altp2m.h
index 56ae19b24b42..99c4cfa5a68b 100644
--- a/xen/arch/x86/include/asm/altp2m.h
+++ b/xen/arch/x86/include/asm/altp2m.h
@@ -106,6 +106,10 @@ int altp2m_change_gfn(struct domain *d, unsigned int idx,
gfn_t old_gfn,
int altp2m_set_view_visibility(struct domain *d, unsigned int altp2m_idx,
uint8_t visible);
+/* Set a specific p2m view visibility (with lock already held) */
+int altp2m_set_view_visibility_locked(struct domain *d, unsigned int
altp2m_idx,
+ uint8_t visible);
+
/*
* Looks up altp2m entry. If the entry is not found it looks up the entry in
* hostp2m.
diff --git a/xen/arch/x86/mm/altp2m.c b/xen/arch/x86/mm/altp2m.c
index 0542e3ef9196..8672b8c061d3 100644
--- a/xen/arch/x86/mm/altp2m.c
+++ b/xen/arch/x86/mm/altp2m.c
@@ -685,9 +685,19 @@ int p2m_get_suppress_ve(struct domain *d, gfn_t gfn, bool
*suppress_ve,
int altp2m_set_view_visibility(struct domain *d, unsigned int altp2m_idx,
uint8_t visible)
{
- int rc = 0;
+ int rc;
altp2m_lock(d);
+ rc = altp2m_set_view_visibility_locked(d, altp2m_idx, visible);
+ altp2m_unlock(d);
+
+ return rc;
+}
+
+int altp2m_set_view_visibility_locked(struct domain *d, unsigned int
altp2m_idx,
+ uint8_t visible)
+{
+ int rc = 0;
if ( !altp2m_is_eptp_valid(d, altp2m_idx) )
rc = -EINVAL;
@@ -698,8 +708,6 @@ int altp2m_set_view_visibility(struct domain *d, unsigned
int altp2m_idx,
d->arch.altp2m_visible_eptp[array_index_nospec(altp2m_idx, MAX_EPTP)] =
mfn_x(INVALID_MFN);
- altp2m_unlock(d);
-
return rc;
}
--
2.34.1
|