From nobody Sun Dec 14 11:18:45 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; arc=pass (i=1 dmarc=pass fromdomain=amd.com); dmarc=pass(p=quarantine dis=none) header.from=amd.com ARC-Seal: i=2; a=rsa-sha256; t=1763711346; cv=pass; d=zohomail.com; s=zohoarc; b=Grh3tNVuf8vkD546bLgoaOFf35ozcSv+tOOrLX9bI1R5QbjfDYvB0JHG+AkAF5lHeRn616uJCwiJbs3dtFqZHSdxpHkdB/NBj3IaolPaCgzsEMITa+C4G9MMGuspd5ly7j7zKDbd2aQtbHg44tBm8IE+KT3lJtRAGOqs/by+VkY= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1763711346; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=UDAbNopACv5O5LpLWh1vQ8zSCmW+KHY5SViKu0W024c=; b=eXxC5Rt6FrLNHOdvgPXb7kj+e5MdVEh+gw4clQ4j9YRh1zwnT5s7sRf2pWwVd6kiufnYshiUTe6GsmnL+7RGe+CVaQkV7TqCHaWMVx63e5Oi+cO9R6XH3KvIB98NDGAvLrrv7uPMvtzd0rNnbY202SY7b8M7wmGwUBZ7ZCPgkvQ= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; arc=pass (i=1 dmarc=pass fromdomain=amd.com); dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1763711346012216.00597655545369; Thu, 20 Nov 2025 23:49:06 -0800 (PST) Received: from list by lists.xenproject.org with outflank-mailman.1168293.1494367 (Exim 4.92) (envelope-from ) id 1vMLt0-0005CU-18; Fri, 21 Nov 2025 07:48:54 +0000 Received: by outflank-mailman (output) from mailman id 1168293.1494367; Fri, 21 Nov 2025 07:48:54 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1vMLsz-0005CN-UR; Fri, 21 Nov 2025 07:48:53 +0000 Received: by outflank-mailman (input) for mailman id 1168293; Fri, 21 Nov 2025 07:48:52 +0000 Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50] helo=se1-gles-flk1.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1vMLsy-0004hA-JR for xen-devel@lists.xenproject.org; Fri, 21 Nov 2025 07:48:52 +0000 Received: from SN4PR2101CU001.outbound.protection.outlook.com (mail-southcentralusazlp170120001.outbound.protection.outlook.com [2a01:111:f403:c10d::1]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS id 8442ff06-c6ae-11f0-980a-7dc792cee155; Fri, 21 Nov 2025 08:48:50 +0100 (CET) Received: from MW4PR03CA0001.namprd03.prod.outlook.com (2603:10b6:303:8f::6) by DS0PR12MB9447.namprd12.prod.outlook.com (2603:10b6:8:1b4::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9343.10; Fri, 21 Nov 2025 07:48:46 +0000 Received: from CO1PEPF000075F1.namprd03.prod.outlook.com (2603:10b6:303:8f:cafe::6d) by MW4PR03CA0001.outlook.office365.com (2603:10b6:303:8f::6) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9343.11 via Frontend Transport; Fri, 21 Nov 2025 07:48:42 +0000 Received: from satlexmb07.amd.com (165.204.84.17) by CO1PEPF000075F1.mail.protection.outlook.com (10.167.249.40) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9343.9 via Frontend Transport; Fri, 21 Nov 2025 07:48:46 +0000 Received: from penny-System-Product-Name.amd.com (10.180.168.240) by satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Thu, 20 Nov 2025 23:48:42 -0800 X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: 8442ff06-c6ae-11f0-980a-7dc792cee155 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=jEIbg2WbKFC9efOy8ENuvVuNreaCkYTtlo0+PsknIAB2hUb+QzV523+OWoLbDRnMh76/R0kgaBu7ShFzMqXsOkL2V1sUAVHObk9PA6nfeuCj9HOYO7OMAbzVn6/u5lqoSZ6G7LLaazVtqzSEz1Y/YnKxSu0Lhdqd1hekvcGInHuJc2WCVKJAgUyJVr+pzS/Ed0WfTbM+1+Det/i5gHbxj5wq9whsP+6HYgsAe3lb1TdIUGbXmWCbDvAKWBPA6rgY8QDcL0avi0HI8zwIWK0I95rFe75bego9i3drLbqusCb9E5GNYQglPHGx1u/DTlRqzQFA2b+N1QZ5069Jk2PZLQ== 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=UDAbNopACv5O5LpLWh1vQ8zSCmW+KHY5SViKu0W024c=; b=hy/UNXOPZc87TFo7Kq6f7KTPDTOMawDSv0vUlXu3GC6hG8jZcjpdxjQmvSUZeeF6xzaHwoBtZqFpsVDySQGr+RIDJfycj5h5coLcwchrw712vt9QdaK6rder/1yYcPN8DJoPvQ86DNh8j5OYk3rWX8CJ+hYRl5lfN3DOCle4TfG0lz0FzRkY7A25N+xn++72hE+1xIkDj5+rI52yJeTxrMF+HqmaE0nrC96kGtwOihvv9wj9nxWNYL1pPyx80AbLUcOyMk7FA6P3RBTed40YERulIpHo96DUBu0AxgdBwosy8xY2tvClSPLA12fnGdlDd5DkfgIqrDiOFsumiPvong== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=lists.xenproject.org smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=UDAbNopACv5O5LpLWh1vQ8zSCmW+KHY5SViKu0W024c=; b=dG9kLTdVG4lnTyJsewaS4skJD6bmJxg7mGN/Ay2ltNImAa6dVDMcXRCbx0mjmhKRY8wrgiF2HmzPQQg0BYerjF7vg62LiQVW9iQ+FvKcs/E/jUVNH6F1cWe+sJghEsBNTKgGnX35/TAEttKZGb8pA2//m6PxeuzAE7gNN1JRuPw= X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C From: Penny Zheng To: CC: , , Penny Zheng , Tamas K Lengyel , "Alexandru Isaila" , Petre Pircalabu , Jan Beulich , Andrew Cooper , =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= , Anthony PERARD , "Michal Orzel" , Julien Grall , "Stefano Stabellini" Subject: [PATCH v2 5/7] xen/p2m: move xenmem_access_to_p2m_access() to common p2m.c Date: Fri, 21 Nov 2025 15:48:01 +0800 Message-ID: <20251121074803.312568-6-Penny.Zheng@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20251121074803.312568-1-Penny.Zheng@amd.com> References: <20251121074803.312568-1-Penny.Zheng@amd.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Originating-IP: [10.180.168.240] X-ClientProxiedBy: satlexmb07.amd.com (10.181.42.216) To satlexmb07.amd.com (10.181.42.216) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CO1PEPF000075F1:EE_|DS0PR12MB9447:EE_ X-MS-Office365-Filtering-Correlation-Id: 440fc3a0-4ac8-40b5-a67b-08de28d2669c X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|36860700013|376014|1800799024|82310400026; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?IgZ00L6Gl64s/IqaTcXzPfBbUZRHaw94erktVYOleNPhqtzUq/aNMSgoKLsm?= =?us-ascii?Q?ZL595al4ST88WZrJUkGMmCJ9vFwRxwnN3pZZD6G7JL6p/NOWr5ZU7Qffn1qS?= =?us-ascii?Q?HVWn0fiXa0Vn0Nap4jfud1NxN1uuZ8ogqzxNqhkPSrFa+6n4PcOYxsRNQIMN?= =?us-ascii?Q?dcGmWBACNidr+G2mYM8mhNl1JMURieonDUWlCzOE+Ol3dL09tOV1VEqEMKN+?= =?us-ascii?Q?tejaT/uOnHWX+rGYnZ/nBy43Q7BPUQB9/RMMeyrYAcyC7pTwOEhwmrWjCyhw?= =?us-ascii?Q?ZeBLmcKvxr9AXaUDsgeV1qdy2JA7E8ua0Jf9BH1Se6Zi9I7IWihgedJeYUD9?= =?us-ascii?Q?a1XZ9Y6CFgkpouiyWTMOWb7Tdd96tLqZLAT8ISJ/aagCipfX92c7J5nIlvuV?= =?us-ascii?Q?nwB8MuWyi67SSsx9VCPtAq+pUczrx8YiNHaNPGoQ9Ux4GSCZY5Af3VL4K8kQ?= =?us-ascii?Q?kmgMIaX9MFXdualn8YNYZYKUOLh7jm4P9C0HXp2AG1z+ErPlRVAnM6Gysqg4?= =?us-ascii?Q?EbRtpuk3CPUrEbqoyPFtd2VYPA+sX957C2pteHNj1wZjmjAzdt3bhVTObytr?= =?us-ascii?Q?BT5G0KO0U449S99gwVt8OGJYsswz67p3NC50TgCtdddnAcNrhsJ99IeqkOmh?= =?us-ascii?Q?o/vcBfG1PqthaAfmxO10DcEyz3YP2SpTDDjNRBLweFngzz33Opw7Fqbhe3fH?= =?us-ascii?Q?AyPVyYGMniocmwF2Mpu9wIiYoBS98HQdeDuDjR9gFH3KOq6LI9lh8pG5eB6c?= =?us-ascii?Q?SyLFNgSIa6ynz4aAxOsZQ6KgbDnsE6XzwWlRzOgQ1fdS6itmau/dI6NnMBiV?= =?us-ascii?Q?s7fEjR1S8PaNd1NXWgmFIAad5nLJ2Wpw5xl23FGueK4otWR+2xsn92EeOmbf?= =?us-ascii?Q?RWVhSJ2Y3bnFJPboyaAO71pWigezIAo7CArHb8U49/UHUXbgx8i2F1MWT71s?= =?us-ascii?Q?WxE5RLuS18pz8trcF1kgo4Nyq7+0TW/AvKQQmalk4uQfar+EV/sXaUKwDI0G?= =?us-ascii?Q?/Sfuffj8aGYYTpgksbYuPj3SGqCwXWJX7hKLH5qrFKClbDrsJ0Wj+IxHcl55?= =?us-ascii?Q?J47aTdB9cm0134UdTvUnIfzF7WX+w9toLMplICoDc4UaGuQBExfqv2t2+oMu?= =?us-ascii?Q?2/BxsG4P0dwFaPj/J1vuZHn/WUXVYxheucilscam53KgAYTjgMGp0EPJXUId?= =?us-ascii?Q?TN8rop9A1vN/YjZRtXHFMeWaCxb51aKzO//FL+LCgVOsv9TcXlYdRw3t4E1v?= =?us-ascii?Q?t3MplaF8jA6NTeX9bcSG3AR6Wjee9sdgJNkYTAXeCCn7mNOttzndqFGCvNKN?= =?us-ascii?Q?zYkEFqkHHL/6V2c11o1N4toJvfxU9smObiVyJJXKps1MpQrj5RPpw4CPjMv3?= =?us-ascii?Q?67yr883wlDhyh+dpbFvTlsl8IT/gAs/svwFQ4UoPEZf/TcRXPjR5RbqUo2I+?= =?us-ascii?Q?nP8M4D3SjgaITsJe491WvE1cYUnzjUC/YPb7VTQ4nMWP4NfLKPfQlktdmVgU?= =?us-ascii?Q?GO37oSNurUfgCcY5NsOsZCos2yKer/+fYMP88BZ76fGHDj0R7q2uGSYHMkJP?= =?us-ascii?Q?YgxXv6vfOVWm0hvm58U=3D?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(7416014)(36860700013)(376014)(1800799024)(82310400026);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Nov 2025 07:48:46.1645 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 440fc3a0-4ac8-40b5-a67b-08de28d2669c X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com] X-MS-Exchange-CrossTenant-AuthSource: CO1PEPF000075F1.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR12MB9447 X-ZohoMail-DKIM: pass (identity @amd.com) X-ZM-MESSAGEID: 1763711346702018900 Content-Type: text/plain; charset="utf-8" Memory access and ALTP2M are two seperate features, while both depending on helper xenmem_access_to_p2m_access(). So it betters lives in common p2m.c, other than mem_access.c which will be compiled out when VM_EVENT=3Dn && ALT= P2M=3Dy. Guard xenmem_access_to_p2m_access() with VM_EVENT || ALTP2M, otherwise it will become unreachable when both VM_EVENT=3Dn and ALTP2M=3Dn, and hence violating Misra rule 2.1 We also need to move declaration from mem_access.h to p2m-common.h An extra blank line is inserted after each case-block to correct coding style at the same time. Signed-off-by: Penny Zheng --- v1 -> v2: - Guard xenmem_access_to_p2m_access() with VM_EVENT || ALTP2M - Move declaration from mem_access.h to p2m-common.h - refine commit message --- xen/arch/x86/mm/mem_access.c | 36 -------------------------------- xen/arch/x86/mm/p2m.c | 40 ++++++++++++++++++++++++++++++++++++ xen/include/xen/mem_access.h | 5 ----- xen/include/xen/p2m-common.h | 3 +++ 4 files changed, 43 insertions(+), 41 deletions(-) diff --git a/xen/arch/x86/mm/mem_access.c b/xen/arch/x86/mm/mem_access.c index e6b609064c..e55e53f44c 100644 --- a/xen/arch/x86/mm/mem_access.c +++ b/xen/arch/x86/mm/mem_access.c @@ -298,42 +298,6 @@ static int set_mem_access(struct domain *d, struct p2m= _domain *p2m, return rc; } =20 -bool xenmem_access_to_p2m_access(const struct p2m_domain *p2m, - xenmem_access_t xaccess, - p2m_access_t *paccess) -{ - static const p2m_access_t memaccess[] =3D { -#define ACCESS(ac) [XENMEM_access_##ac] =3D p2m_access_##ac - ACCESS(n), - ACCESS(r), - ACCESS(w), - ACCESS(rw), - ACCESS(x), - ACCESS(rx), - ACCESS(wx), - ACCESS(rwx), - ACCESS(rx2rw), - ACCESS(n2rwx), - ACCESS(r_pw), -#undef ACCESS - }; - - switch ( xaccess ) - { - case 0 ... ARRAY_SIZE(memaccess) - 1: - xaccess =3D array_index_nospec(xaccess, ARRAY_SIZE(memaccess)); - *paccess =3D memaccess[xaccess]; - break; - case XENMEM_access_default: - *paccess =3D p2m->default_access; - break; - default: - return false; - } - - return true; -} - /* * Set access type for a region of gfns. * If gfn =3D=3D INVALID_GFN, sets the default access type. diff --git a/xen/arch/x86/mm/p2m.c b/xen/arch/x86/mm/p2m.c index e2a00a0efd..2763f9a6be 100644 --- a/xen/arch/x86/mm/p2m.c +++ b/xen/arch/x86/mm/p2m.c @@ -2189,6 +2189,46 @@ void p2m_log_dirty_range(struct domain *d, unsigned = long begin_pfn, guest_flush_tlb_mask(d, d->dirty_cpumask); } =20 +#if defined(CONFIG_VM_EVENT) || defined(CONFIG_ALTP2M) +bool xenmem_access_to_p2m_access(const struct p2m_domain *p2m, + xenmem_access_t xaccess, + p2m_access_t *paccess) +{ + static const p2m_access_t memaccess[] =3D { +#define ACCESS(ac) [XENMEM_access_##ac] =3D p2m_access_##ac + ACCESS(n), + ACCESS(r), + ACCESS(w), + ACCESS(rw), + ACCESS(x), + ACCESS(rx), + ACCESS(wx), + ACCESS(rwx), + ACCESS(rx2rw), + ACCESS(n2rwx), + ACCESS(r_pw), +#undef ACCESS + }; + + switch ( xaccess ) + { + case 0 ... ARRAY_SIZE(memaccess) - 1: + xaccess =3D array_index_nospec(xaccess, ARRAY_SIZE(memaccess)); + *paccess =3D memaccess[xaccess]; + break; + + case XENMEM_access_default: + *paccess =3D p2m->default_access; + break; + + default: + return false; + } + + return true; +} +#endif /* VM_EVENT || ALTP2M */ + /* * Local variables: * mode: C diff --git a/xen/include/xen/mem_access.h b/xen/include/xen/mem_access.h index 4de651038d..8e7d9ea2e3 100644 --- a/xen/include/xen/mem_access.h +++ b/xen/include/xen/mem_access.h @@ -73,11 +73,6 @@ typedef enum { /* NOTE: Assumed to be only 4 bits right now on x86. */ } p2m_access_t; =20 -struct p2m_domain; -bool xenmem_access_to_p2m_access(const struct p2m_domain *p2m, - xenmem_access_t xaccess, - p2m_access_t *paccess); - /* * Set access type for a region of gfns. * If gfn =3D=3D INVALID_GFN, sets the default access type. diff --git a/xen/include/xen/p2m-common.h b/xen/include/xen/p2m-common.h index f0bd9a6b98..bd4169caee 100644 --- a/xen/include/xen/p2m-common.h +++ b/xen/include/xen/p2m-common.h @@ -43,5 +43,8 @@ int __must_check check_get_page_from_gfn(struct domain *d= , gfn_t gfn, bool readonly, p2m_type_t *p2mt_p, struct page_info **page_p); =20 +bool xenmem_access_to_p2m_access(const struct p2m_domain *p2m, + xenmem_access_t xaccess, + p2m_access_t *paccess); =20 #endif /* _XEN_P2M_COMMON_H */ --=20 2.34.1