From nobody Fri Oct 31 16:19:11 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=1746413849; cv=pass; d=zohomail.com; s=zohoarc; b=Any9XVirxqJfXuw6v+liqcqLt5weot+ZDahpoyjme2KU/89hyrd9JhVi0Jl8R56QnM0WPTQEoZ3qv4TOayucYM6/UbwtHOQxer+bX3w4SKzXtscYmzGVC/fNVWhmwulBqPuG8EGuAk8w5jyEe0ltUMbG7ACRlCwnvi0jl/Xl4D8= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1746413849; 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=B8Ric0W30oVUy1JBURC09V+g0enK44KOZUfYMZtclAQ=; b=Oh2EAaSZ5IwwZmX5eQPbdg5RSWaAzzN7AH2TrT3aEz8H3PDhRqZpFvz2z+3APZbFcYNwbPIGJr3c/Dbjtl9GuHgNWp+X9Jtkp1wgH6C0MdoBjuySqxX82Qk+/Saahx+b9wy3UAPDG1wSteSh/F+QzXLSSDeSbIW8bKbEvOddMG0= 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 1746413849677113.33271088544166; Sun, 4 May 2025 19:57:29 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.975740.1363076 (Exim 4.92) (envelope-from ) id 1uBm15-0000mt-Ko; Mon, 05 May 2025 02:57:15 +0000 Received: by outflank-mailman (output) from mailman id 975740.1363076; Mon, 05 May 2025 02:57:15 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1uBm15-0000mm-I6; Mon, 05 May 2025 02:57:15 +0000 Received: by outflank-mailman (input) for mailman id 975740; Mon, 05 May 2025 02:57:15 +0000 Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254] helo=se1-gles-sth1.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1uBm14-0000Iv-Vu for xen-devel@lists.xenproject.org; Mon, 05 May 2025 02:57:14 +0000 Received: from NAM04-BN8-obe.outbound.protection.outlook.com (mail-bn8nam04on20621.outbound.protection.outlook.com [2a01:111:f403:2408::621]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS id a5217d05-295c-11f0-9eb4-5ba50f476ded; Mon, 05 May 2025 04:57:14 +0200 (CEST) Received: from SN1PR12CA0054.namprd12.prod.outlook.com (2603:10b6:802:20::25) by SA1PR12MB9245.namprd12.prod.outlook.com (2603:10b6:806:3a7::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8699.24; Mon, 5 May 2025 02:57:08 +0000 Received: from SN1PEPF000397B5.namprd05.prod.outlook.com (2603:10b6:802:20:cafe::f4) by SN1PR12CA0054.outlook.office365.com (2603:10b6:802:20::25) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8699.26 via Frontend Transport; Mon, 5 May 2025 02:57:08 +0000 Received: from SATLEXMB03.amd.com (165.204.84.17) by SN1PEPF000397B5.mail.protection.outlook.com (10.167.248.59) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.8722.18 via Frontend Transport; Mon, 5 May 2025 02:57:07 +0000 Received: from SATLEXMB06.amd.com (10.181.40.147) by SATLEXMB03.amd.com (10.181.40.144) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Sun, 4 May 2025 21:57:04 -0500 Received: from SATLEXMB03.amd.com (10.181.40.144) by SATLEXMB06.amd.com (10.181.40.147) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Sun, 4 May 2025 21:56:44 -0500 Received: from ubuntu.mshome.net (10.180.168.240) by SATLEXMB03.amd.com (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.39 via Frontend Transport; Sun, 4 May 2025 21:56:43 -0500 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: a5217d05-295c-11f0-9eb4-5ba50f476ded ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=VXCThR/1vhbz5eXZFiHV5S3u2jN8mnNGdu7L1AvPtaufzBc2Gp0TKOyM1Kl7PSeJKXvlbmxuLoxMPruEmYuCmv9LeC3ZDNbhf+MQJ8tR1nvGVS9Lfj+2KQIQi4zVT+2k81WJi88AfM0p9lHJChy60Gezx3frSYGcYUjX9AF6Slvx84Mraf7WCoxyhHLjRRvk24SXL49Y4vJNsF5J2mAotp3hajGViAMaKcJMSJWp/PBFsU/Sya0NTrUJ4bu1NxAqOI0BaVcGbUQlT5kMpxZgZLtwRd/QIbPaTuiAlIu8+Wrco3wuRIOcpPoQ/KzPYxIiWbhP9zwuzighJ3NSeBUmZg== 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=B8Ric0W30oVUy1JBURC09V+g0enK44KOZUfYMZtclAQ=; b=XXYnZQ0Jhxl+pWWgs2mZexMAPR1+uxj1//b2LPDOnsfXmviGCE+RmWTLWWDGhv47UScXDtZefhrnwV0OvSy3YRyUmsI5ztEtOD+x/Din+KXmH5Z+Ka/QwbDD5UUq9QgyhCcqqJ95BPw+xb13uzeV61Gl15yMhzoeiUltD8CazV93C1/MUsFm8RsId/wbG5rM1Ghj45NbK5iB8yOC4SSv57maS4GOS+laFWHBkthIbgbs5qCnDWJeZ+FUOjLikRjQJGbc/HY9ON1i3XTIuJTcfRK0Pw1HXzyqbplRC7K90rFNjkKgqckYUlXs+5LWsCKrPdUwRgLvJ3fE68Z/KbS/MA== 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=B8Ric0W30oVUy1JBURC09V+g0enK44KOZUfYMZtclAQ=; b=zZ85HJ7M1y3lLt5y8PW2NJjj3cRvjiicgIPSvOcFhJoeEzykdHPefHjkyL7mW3CUf5aHvpF2tLf8LWvAmiNZKVd692ym/Nr+U7i2hrySlqwAHwVPkNvhWibPq5N5E3qGGWqqeaxWQ8VfZ8POfKNVRd0u1fLMh1m7F8Q0Q5WKdo8= 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=SATLEXMB03.amd.com; pr=C From: Stewart Hildebrand To: CC: Stewart Hildebrand , Stefano Stabellini , Julien Grall , Bertrand Marquis , Michal Orzel , "Volodymyr Babchuk" , Ayan Kumar Halder Subject: [PATCH 1/6] xen/arm: fix math in add_ext_regions Date: Sun, 4 May 2025 22:56:24 -0400 Message-ID: <20250505025631.207529-2-stewart.hildebrand@amd.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250505025631.207529-1-stewart.hildebrand@amd.com> References: <20250505025631.207529-1-stewart.hildebrand@amd.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SN1PEPF000397B5:EE_|SA1PR12MB9245:EE_ X-MS-Office365-Filtering-Correlation-Id: 5b3dd7a7-0580-4440-7b3e-08dd8b808630 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|36860700013|1800799024|376014|82310400026; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?lBHwNmRKT/24ex0mqx7wfy5/oqLvAJEu6D3VgjNQGgU7GmaH8Sbbw/dNEAZQ?= =?us-ascii?Q?8vE+4ICy+eIvCN+pD1BRXUWG1sKQvgnAO6u3QE2SMXWzRlYArzopvi2TSjFX?= =?us-ascii?Q?07awlh/lBaW/dpoM0TbW+5+tZC0a6DBTkk3mYzUrFsu50MtTW0OsYAGQM+w1?= =?us-ascii?Q?76TGUKJmr4Fyk7P9bTPt2EhIa9Tp+GNMdrhCVeItXZfVhOInICOYNYoODRBL?= =?us-ascii?Q?MXKYRlQ8p30SNnblmY3B907CXAUcuuPXEQY638vWwvA81/QdhtjhoA6NthGt?= =?us-ascii?Q?3DeaftbCValvPrfsgSjSvVdmjdKWLMS7UTGrQGFX/d6xVlmurT7W47T0f0ne?= =?us-ascii?Q?7npOa1gtI6MkxWDl8KQRH7BNzlyPpnHkuRkAssEbARVDiQZQiOoNniROw626?= =?us-ascii?Q?KJ5KLj2v4JZN1C9oNfQR8DzvqHjvqsSvy9b8/E3eOMXmfQpfzZysaLrx3qOt?= =?us-ascii?Q?mzfh2Cgjgg65qfykvavKOQ2RdhULZnuNq/oddm/eHOF8sqzVz1qhGp56NowU?= =?us-ascii?Q?PjRdmK+yLJQaHs2pHraIirUdhMRUbOqRh0+DRxGKi0zpd/8OVbPGAajo5KB3?= =?us-ascii?Q?7YAu4VDFoFNQ0E4unwiA9C6tZec7QLAAA7doJSYMY22JAOzO4vcMyu8p4c4y?= =?us-ascii?Q?li2Tjx74LsevWBt6OM2vUP7fYLeuYTNLY1DWUtkQjFZ/yVnYut5Z4EubElyj?= =?us-ascii?Q?5FXD5sOHeOc6exaTkURn4Ev308pSEDRSUDn0njk48o3YLTPv2rYF1ExiSZxi?= =?us-ascii?Q?FbFgxaibvJZkcQiRjkhdTLRSxpXbCST0cc0iPxqhjpPwGYW7Se0aAj5IWCSS?= =?us-ascii?Q?G7aKISv3lBy63q3IYtY6hR8HV9msNkG8mYFhcKnPpLaeUzrt4guUeXVnUQPn?= =?us-ascii?Q?3bJce7+aZIq27TCMf4YWtZYA/wK6yeExu6xF6ZMk5d9SSmyYW0ajamYKomVF?= =?us-ascii?Q?C1q2MIhpVPvrovx0ZkucFm7u+WQGYvw6v+SF9s2sf8WGXg7LQXu8IKVlpzrz?= =?us-ascii?Q?TooIByYsv6h5XMAn2i1KBv1xNkU9S/5F+B08dr5sC0As4cosepoUD2rmpMRI?= =?us-ascii?Q?DWYccRFp4TkwhdMpeiu/r+Eh7FBgZGc87vUIp43IN9akUuwZxNc1z2FzRyIz?= =?us-ascii?Q?Ov+5i7f9YP1oniBAuQVsDWoE4LOMQNe7zgIXgjGsS9xKSUvUy/GZ1Rpw5KAd?= =?us-ascii?Q?ph55IyN+UlSv4PDq1O6H2qzsRrZlYnNTEapOXI67FoFtUxOEek1urjJvTApp?= =?us-ascii?Q?N+Qet+EQWW/Qx7Lk52Toqn1RBFDVgcPKmcM1uBexac2Pu9uOicNX3INysclX?= =?us-ascii?Q?z8gV5O0RpIorp18zq3d4neE5zFa5S1aV0BF0l0lcuylu/oVdm8x9JGHbMW7o?= =?us-ascii?Q?1UaGovktcp6lSWYvtjeL8aKjeZfINjLuaC6Ueh9bQbmx9zyWv2OyPal2Tf2L?= =?us-ascii?Q?cayQknhbJ5KmVEPgYDOxaRVYlQ4OW6H2zHGtvnyCFOJxhwcUBG+EW5b/CLng?= =?us-ascii?Q?lQatdNVec6xmDxb9ALBriyLhwTrbopiZP558?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB03.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(1800799024)(376014)(82310400026);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 May 2025 02:57:07.9152 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 5b3dd7a7-0580-4440-7b3e-08dd8b808630 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=[SATLEXMB03.amd.com] X-MS-Exchange-CrossTenant-AuthSource: SN1PEPF000397B5.namprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR12MB9245 X-ZohoMail-DKIM: pass (identity @amd.com) X-ZM-MESSAGEID: 1746413852084116600 Content-Type: text/plain; charset="utf-8" In commit f37a59813979, the arguments to add_ext_regions() were switched from addresses to frame numbers. add_ext_regions() converts the frame numbers back to addresses, but the end address (e) is rounded down to page size alignment. The logic to calculate the size assumes e points to the last address, not page, effectively leading to the region size being erroneously calculated to be 2M smaller than the actual size of the region. Fix by adding 1 to the frame number before converting back to address. Fixes: f37a59813979 ("xen/arm: domain_build: Track unallocated pages using = the frame number") Signed-off-by: Stewart Hildebrand Acked-by: Michal Orzel --- xen/arch/arm/domain_build.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c index 270a6b97e42c..2f655bcc2237 100644 --- a/xen/arch/arm/domain_build.c +++ b/xen/arch/arm/domain_build.c @@ -864,7 +864,7 @@ int __init add_ext_regions(unsigned long s_gfn, unsigne= d long e_gfn, struct membanks *ext_regions =3D data; paddr_t start, size; paddr_t s =3D pfn_to_paddr(s_gfn); - paddr_t e =3D pfn_to_paddr(e_gfn); + paddr_t e =3D pfn_to_paddr(e_gfn + 1) - 1; =20 if ( ext_regions->nr_banks >=3D ext_regions->max_banks ) return 0; --=20 2.49.0 From nobody Fri Oct 31 16:19:11 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=1746413855; cv=pass; d=zohomail.com; s=zohoarc; b=mzJD8SYjIlMyHhyQiHrll5HzE7HTzEcAspK27n+tl0+SB/VHezPo7d5f5luwghCpNuBSet/4w5J6Imvh3TCVIZnAMM0vdhw9S9HFV1BFISQuhtjjxfkT/ajIjDE7P8qiaSmOVwFR1r3ExuY+IhX7K54bNbGv/ukozOeE9tpoRHA= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1746413855; 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=qdkdABA0C/3U8XeT6P3gQCCq4cQg5hAvm483R/ZDryY=; b=Wik+UCED//FKmdNfKHT0KEumxwPHgwg/d1d5Jpq2/Tc0sFuaHAFD4zzcD9MNwvfFXNmimbpMxUKSpXNpiJJDE2XvpRiBNyS0F1GicExN94uFugnnepMgcKKjLtKkCzy+moh6BGlkAIXXZvaCb3DQrnzeA0wA6OHYoTrbBxU7rTY= 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 1746413855769383.80801810928483; Sun, 4 May 2025 19:57:35 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.975745.1363086 (Exim 4.92) (envelope-from ) id 1uBm1B-000176-TJ; Mon, 05 May 2025 02:57:21 +0000 Received: by outflank-mailman (output) from mailman id 975745.1363086; Mon, 05 May 2025 02:57:21 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1uBm1B-00016z-QJ; Mon, 05 May 2025 02:57:21 +0000 Received: by outflank-mailman (input) for mailman id 975745; Mon, 05 May 2025 02:57:20 +0000 Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254] helo=se1-gles-sth1.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1uBm1A-0000Iv-Ij for xen-devel@lists.xenproject.org; Mon, 05 May 2025 02:57:20 +0000 Received: from NAM11-CO1-obe.outbound.protection.outlook.com (mail-co1nam11on2061a.outbound.protection.outlook.com [2a01:111:f403:2416::61a]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS id a8203204-295c-11f0-9eb4-5ba50f476ded; Mon, 05 May 2025 04:57:19 +0200 (CEST) Received: from SJ0PR05CA0134.namprd05.prod.outlook.com (2603:10b6:a03:33d::19) by PH8PR12MB7421.namprd12.prod.outlook.com (2603:10b6:510:22b::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8699.20; Mon, 5 May 2025 02:57:13 +0000 Received: from SJ5PEPF000001CB.namprd05.prod.outlook.com (2603:10b6:a03:33d:cafe::81) by SJ0PR05CA0134.outlook.office365.com (2603:10b6:a03:33d::19) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8699.24 via Frontend Transport; Mon, 5 May 2025 02:57:13 +0000 Received: from SATLEXMB04.amd.com (165.204.84.17) by SJ5PEPF000001CB.mail.protection.outlook.com (10.167.242.40) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.8722.18 via Frontend Transport; Mon, 5 May 2025 02:57:12 +0000 Received: from SATLEXMB05.amd.com (10.181.40.146) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Sun, 4 May 2025 21:57:12 -0500 Received: from SATLEXMB03.amd.com (10.181.40.144) by SATLEXMB05.amd.com (10.181.40.146) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Sun, 4 May 2025 21:57:11 -0500 Received: from ubuntu.mshome.net (10.180.168.240) by SATLEXMB03.amd.com (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.39 via Frontend Transport; Sun, 4 May 2025 21:57:10 -0500 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: a8203204-295c-11f0-9eb4-5ba50f476ded ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=IYgIS3azss+0gEM1xVH5N0Ehf+8Adu+jAXrtRgJqHxbCVBuKM3xt6bp7wuj2OE0UAx/x5QeoyahysXzGhdX3zsFhcQenfFZgls7QdtdlyVK3VUxfhL4GEfOsxY29x92zMonq8BSM5hL7akQXRX5ONH12sSCR+n7LekGH3tCWLK2tLYA/5RXWeeBKazm0TDZg11ObTp6b4ZemOVMcSfbYeMgGX+thHrdfM4x8tE5q6609prRFQEI+2DwOnb33vjszp1F8SJkqPfcQKntemmYjtla6kFliSODj/DVXASnOKmYDNuKujTUtXCoo/aFD6CupMBIO8JYy+xCh+65J/3ZzzQ== 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=qdkdABA0C/3U8XeT6P3gQCCq4cQg5hAvm483R/ZDryY=; b=DerwQIfTnh3ziyZRa/QCrHSDozZZea+yLOLytP0dnpzpezhLzs0jhlTgF0ZDdReqzX/MzQSvP0fdhHI/kzQnSq3vgZ0b/EUuuCdq0B33cvxuhWJCvPTN51QZh+Gjm4Unpe5K4RPVHhBytJmbdz9MRHMzfgBP61QpgM4BMVp/zVwrH8CwFgynzMugCC8ysDcRK26wpTcidy5rH+k7OqthAfOc9bgktQTROIaVO+d6yYuQq/Rm6NZ1s/9HdfgQ0phn3jQ4/8tZaFbWpDwJaxFszAaBFElLg1OxmfN/8j0DdES2knjyvaERbaR2O78crXpapYzf6dT9EPXhvEad/rn1ew== 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=qdkdABA0C/3U8XeT6P3gQCCq4cQg5hAvm483R/ZDryY=; b=ImQJ9URZbB6QtYK1zi0WATbIdhv5v0SOZ5aG5Ecp1kycqFcFiWmoELhJM1Yd/32VE1pFTzoc0HDYNm6YVXXmMLN2EK0Z1vd0ZXtDAqJfOt4c1ghm+dyXTpGkr6Nj9vAZEtvJFPJtwEB71rxV0torpEJhdPj04YScp0ch1xLcEx0= 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=SATLEXMB04.amd.com; pr=C From: Stewart Hildebrand To: CC: Stewart Hildebrand , Stefano Stabellini , Julien Grall , Bertrand Marquis , Michal Orzel , "Volodymyr Babchuk" Subject: [PATCH 2/6] xen/arm: fix math in add_hwdom_free_regions Date: Sun, 4 May 2025 22:56:25 -0400 Message-ID: <20250505025631.207529-3-stewart.hildebrand@amd.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250505025631.207529-1-stewart.hildebrand@amd.com> References: <20250505025631.207529-1-stewart.hildebrand@amd.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: None (SATLEXMB05.amd.com: stewart.hildebrand@amd.com does not designate permitted sender hosts) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SJ5PEPF000001CB:EE_|PH8PR12MB7421:EE_ X-MS-Office365-Filtering-Correlation-Id: 0a2e0294-2c9d-45fe-d834-08dd8b80891c X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|82310400026|36860700013|376014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?SoGRKwPowUzS5syzi9Q3AL1KPWY3DInalukKzCZJTnl1OalXzqaTx8w+9tyc?= =?us-ascii?Q?JMHeg5ZRX2exByga9rbbGIreMWIL6Mr2SHO+IBZELM7+xOJZyquwBurS0XtE?= =?us-ascii?Q?2zmpKZrHOWlPAi/tXU/PSvy5vcj5kz+/D4xUT5Mb0uHlBjWoL5qn0dzbuHBQ?= =?us-ascii?Q?F6KOWJ25gDvHhNDQbTkTykZs/Vt89Zc8MAHWDPuh1JNHbE7tczxiA0+oNcRd?= =?us-ascii?Q?q0RZvANI5GxrrIetn1bg8tNnzh1+faRGVYKmEUTlcp8K3Dc+sh8Nt4pKtqrL?= =?us-ascii?Q?dCGI9qdUEL6P1Ch0Q6cruzIK4HppAIoGzYrdzMbkuNZKjClCEBqQqr+EW1DJ?= =?us-ascii?Q?5xK7VPXlDxfE6nlIgLW2uk2rnkZrY6H/X/OZL+K+uMBfZZXtb7WCOimGj/J1?= =?us-ascii?Q?che23/g4MYuC0s0Q/G+fIaKoCM9kZPw+vjIgPspI+FLHAX6GB83qAH4elQxo?= =?us-ascii?Q?ev5kXsOJ5BWHYYH848moU5777Y57u8KokixrImNJxcD6UDhseUoyKWedwRtw?= =?us-ascii?Q?Dc4nWj1ECLH6SBhNLNGFZcRZNdbsSJuf+sB3T3WiwZVLqoStrs0ndfjDxmzd?= =?us-ascii?Q?O5cXiQZ85mwkuLWvt447PuF/zMxVMX91c+XduUpUf42jvZMy5mVekroPDnpG?= =?us-ascii?Q?rEmq6DY3moCC2HnKXkV1IjFu+JTvSfyYJw2mUypQmJB+4pClaRMSAyOS3JMt?= =?us-ascii?Q?khYBWd8cuqvz2GBsgklTMKvS2viKQQTYGS6krRHlRVKuAXV3Ttrb376G9EUT?= =?us-ascii?Q?H9gwpMRkBW3fGjD0IrfqyrHkzqLemCgKRmw5YJUdaSQ7+OGOxkq57128R0qg?= =?us-ascii?Q?W554JEIqHrVeERWqdPkcrgxJaPiqTz+/vb3VGKXWYFSRdGZdavniI8mwdIz1?= =?us-ascii?Q?XTFEcx1mhj/h+UGDMADxuvoNbV4z3XvrMrhebkgSukCXHUo3K871JJRxF3da?= =?us-ascii?Q?iltLBOhZX/Tpq0eHfRUK3SaNqPrNXrXOaBH84Kq6Mff9R7ZvVLZxwO+5pLW4?= =?us-ascii?Q?yQAzLxZipFnCwEW4Q/NgWRJJ6t7Blpug7m4K4mCpyGYC+rQ4zhEZ9jJrI8mk?= =?us-ascii?Q?hwJzAf2dHOV1z08mcTm2VNn0/W+qx1cqtgltnPw93Gw7wJsJxj299B3P1dw7?= =?us-ascii?Q?+ESiFACULrWJWpDHbx7oEculCO+0h8XCL7WWEySSxve2Xn61TR66EbzLrYvw?= =?us-ascii?Q?6/4VYcdB8xO/USzeGLfJhMZsTVJFMeM+OQFW6lX66uujgyn4KJsKLGb+7+F8?= =?us-ascii?Q?VEB+0kt1MYLJlOUOuT3BTUpziAdnS4Fdniuzmh11Tph7ckdokgSm0tQpSoOk?= =?us-ascii?Q?AcTxzyt2hly3IC6BvJso2NRI/X6r5/5zgSHqwZwwDJQyvnuB3TjgJHxXFA23?= =?us-ascii?Q?UEDxT6D5hyx6bdxkgNFuaimQAc/eaRXaoT+/jBCsSXkY8850kSTy1gSkaVyP?= =?us-ascii?Q?9iqUxVbGrSx9A/D186uXb66Wdh0SYvDnkKx+36JiRLAO7m0MTPxkbUqu3CzE?= =?us-ascii?Q?9r7armVPXR69IwXwwXzIHC25ny40962cksIC?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(82310400026)(36860700013)(376014);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 May 2025 02:57:12.7597 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 0a2e0294-2c9d-45fe-d834-08dd8b80891c 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=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: SJ5PEPF000001CB.namprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH8PR12MB7421 X-ZohoMail-DKIM: pass (identity @amd.com) X-ZM-MESSAGEID: 1746413857898116600 Content-Type: text/plain; charset="utf-8" Erroneous logic was duplicated from add_ext_regions() into add_hwdom_free_regions(). Frame numbers are converted to addresses, but the end address (e) is rounded down to page size alignment. The logic to calculate the size assumes e points to the last address, not page, effectively leading to the region size being erroneously calculated to be 2M smaller than the actual size of the region. Fix by adding 1 to the frame number before converting back to address. Fixes: 02975cc38389 ("xen/arm: permit non direct-mapped Dom0 construction") Signed-off-by: Stewart Hildebrand Acked-by: Michal Orzel --- xen/arch/arm/domain_build.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c index 2f655bcc2237..a0f3c074337d 100644 --- a/xen/arch/arm/domain_build.c +++ b/xen/arch/arm/domain_build.c @@ -905,7 +905,7 @@ static int __init add_hwdom_free_regions(unsigned long = s_gfn, struct membanks *free_regions =3D data; paddr_t start, size; paddr_t s =3D pfn_to_paddr(s_gfn); - paddr_t e =3D pfn_to_paddr(e_gfn); + paddr_t e =3D pfn_to_paddr(e_gfn + 1) - 1; unsigned int i, j; =20 if ( free_regions->nr_banks >=3D free_regions->max_banks ) --=20 2.49.0 From nobody Fri Oct 31 16:19:11 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=1746413862; cv=pass; d=zohomail.com; s=zohoarc; b=GxQAJW17Z3tdIUf+X8ZOnebwKvTz5X9fL0+EUJTSLAIDKjefYyZUDAFAFMSJB+OFgY8STHzd6x7EpZFYPcArfKAovJgm47WiviYE3l+TTMtKDxuwpJkhkVEUb6RgfbdpJgJzLbfVmdTnXi2Vwx51R9fS18jZrbXlNxRhfRtAXP0= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1746413862; 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=k7EpWyUGojUhK3l4AHNyX8h5cPPVtoJRAwdIaI1JfS0=; b=NkeZ+Y3TdVoBj/3GUPRvy7629Y3p16pSdUlYS/E+VsrKAl5n8lAy4rVU28asWLHPSxtlZHd2XxDMQAjeob81XHFLYjm08V0p4nFaFpxCPS/x/AdTci/vu3/E1Mulp7nujSwK8s9mwJXSXbflh9I1fcN0JS2CkLq/P5py8/WUBh0= 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 1746413862054396.17664069162277; Sun, 4 May 2025 19:57:42 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.975751.1363095 (Exim 4.92) (envelope-from ) id 1uBm1K-0001SP-4O; Mon, 05 May 2025 02:57:30 +0000 Received: by outflank-mailman (output) from mailman id 975751.1363095; Mon, 05 May 2025 02:57:30 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1uBm1K-0001SI-1G; Mon, 05 May 2025 02:57:30 +0000 Received: by outflank-mailman (input) for mailman id 975751; Mon, 05 May 2025 02:57:28 +0000 Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254] helo=se1-gles-sth1.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1uBm1I-0000Iv-G1 for xen-devel@lists.xenproject.org; Mon, 05 May 2025 02:57:28 +0000 Received: from NAM12-DM6-obe.outbound.protection.outlook.com (mail-dm6nam12on20625.outbound.protection.outlook.com [2a01:111:f403:2417::625]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS id ada391d3-295c-11f0-9eb4-5ba50f476ded; Mon, 05 May 2025 04:57:27 +0200 (CEST) Received: from MW4PR04CA0301.namprd04.prod.outlook.com (2603:10b6:303:82::6) by DS5PPF016FC81DF.namprd12.prod.outlook.com (2603:10b6:f:fc00::644) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8678.31; Mon, 5 May 2025 02:57:22 +0000 Received: from SJ5PEPF000001CC.namprd05.prod.outlook.com (2603:10b6:303:82:cafe::44) by MW4PR04CA0301.outlook.office365.com (2603:10b6:303:82::6) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8699.29 via Frontend Transport; Mon, 5 May 2025 02:57:22 +0000 Received: from SATLEXMB04.amd.com (165.204.84.17) by SJ5PEPF000001CC.mail.protection.outlook.com (10.167.242.41) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.8722.18 via Frontend Transport; Mon, 5 May 2025 02:57:21 +0000 Received: from SATLEXMB05.amd.com (10.181.40.146) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Sun, 4 May 2025 21:57:20 -0500 Received: from SATLEXMB03.amd.com (10.181.40.144) by SATLEXMB05.amd.com (10.181.40.146) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Sun, 4 May 2025 21:57:20 -0500 Received: from ubuntu.mshome.net (10.180.168.240) by SATLEXMB03.amd.com (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.39 via Frontend Transport; Sun, 4 May 2025 21:57:19 -0500 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: ada391d3-295c-11f0-9eb4-5ba50f476ded ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=l7S1c23z2/MzThGcLxfrhXjof6dIVOG1d95xFOA1IeAIsIWFZg05d77BaBPaJQeBaVriFsyTEKmV3sj/htiTjOrpQkgAU3FYlmy3GDOM2dzCZ1sAgMnJttke7kdYxRO+JdWhDeR4va7HLe/cz5bpQ+w0y64QYXlvhaJhHmzind4ZX3qqd4z244qjWMM8CP5NNl65DyG0eocy08HqIVBwrK3X/PEEX1H5Sj7S5EjW4LqZn+rGOAow6ed7LjLtBqRb0SRB/5gk0JrXH6HevNm3R9Qo7Pc2tbBQ69v3c152S/SYU0MiJoBQA87lSovNawOjOVPBxm+Z9qgmxy5K943YbA== 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=k7EpWyUGojUhK3l4AHNyX8h5cPPVtoJRAwdIaI1JfS0=; b=iUNwykf8gb0Nfzlzku9q0/YxEH7xTRrcUUFY4niBi7V04B5JX66y+i2Kxk0vGz+RvAp8H0FiWdYdc5AQFdUOwHM/GwJrLuygEUmEupPCAIxHgMaez6m47Gr0a+cS4nNZDg4/dLkMoDPHI6sfLFaHdRS+7zgdkUzdRex3nd25VUfFA6WNW6WhybtgjwBAh7NfhJIIciRMfmAyr0gqPVSs0FOCPe5g2sMnvpGRiPbhyNXCtB/shuV2AIlIHhD+49vqKhcVHYibmMmxvsGMcYavTpVB9qU+w1zMKpWDtC8aysRVHijV/q2va/otjB+JqKNKWtOTCFSAarTiysIHUp5/xg== 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=k7EpWyUGojUhK3l4AHNyX8h5cPPVtoJRAwdIaI1JfS0=; b=jtEr/HD1/VF7+mBfcpscXnWv4vLyuaT05n5zBnDR7jw/w7PyAEmCprQuyyN3Qqpu+gw+TEdU/N8lykp4+yb3vOPM4B/mvEu7p5hFAOWE4Y3oCYYQ9QSy1j5sEL5K5iKssSfSLDzYUqO0s2X8n+9sKyafQ/4ZUbYeRFs7k9iRo8Q= 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=SATLEXMB04.amd.com; pr=C From: Stewart Hildebrand To: CC: Stewart Hildebrand , Stefano Stabellini , Julien Grall , Bertrand Marquis , Michal Orzel , "Volodymyr Babchuk" Subject: [PATCH 3/6] xen/arm: switch find_domU_holes to rangesets Date: Sun, 4 May 2025 22:56:26 -0400 Message-ID: <20250505025631.207529-4-stewart.hildebrand@amd.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250505025631.207529-1-stewart.hildebrand@amd.com> References: <20250505025631.207529-1-stewart.hildebrand@amd.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: None (SATLEXMB05.amd.com: stewart.hildebrand@amd.com does not designate permitted sender hosts) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SJ5PEPF000001CC:EE_|DS5PPF016FC81DF:EE_ X-MS-Office365-Filtering-Correlation-Id: 4b997295-dd6a-46b7-e582-08dd8b808e44 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|82310400026|1800799024|36860700013|376014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?ETmDyZ3v27FcrbsAqFHVkSIc0GSkE33R4eaTVS09MkVMOBnzdtumC+Qvg+oC?= =?us-ascii?Q?9ganNQMmraBiHRC4YkakhPAeKoCWP4Lo6qD6KuxT7v1+NpNT2woDEB0PjW7C?= =?us-ascii?Q?exWvivf7Dm3EzFTjkKs57w4kmHiJb5E0hsbIU/sgPESW132tvQtQgM0l1Hor?= =?us-ascii?Q?4qenJ1aQoKjlLzfcLysq30knjlTZAdQX52+V8+ZXebmBWJhFb15voqZW21aq?= =?us-ascii?Q?6P1uyqq4g/2SADLAcS8MK1LOdA01YrPoUEHH81bopcTUgMCXEW+JNgOHb4UY?= =?us-ascii?Q?V02pMUmX3Afs3e4Z9t91bYSF+s1OfJZ4xKjMFxlxEGl+5eyKEF4E4KMTlfYk?= =?us-ascii?Q?dJ1G7mm7/8TPZgcRirJDiAveCd7FU++Nu1/hKxh8DRhe4xYQBFEgVyqFZ9nn?= =?us-ascii?Q?+M856kt1kg/ULXmwEHRTtTtrVhjkJlqwCDIuRqkxHoKpENmmJKuPB8y008rM?= =?us-ascii?Q?tCqkEbK+AaW1nO3LSjOcZo3X5jKgCm5n6sDOx0CTT0zN17I7+DHdjZEDJwDU?= =?us-ascii?Q?HXmts4LvR/52fmYUPpWOsW7SVpIHYKR8cxirh8rabdhm9BBdl/76VKy2zZ4I?= =?us-ascii?Q?QDU/yEvkSEDFjtIfu8mi6vlmfLASed9h4x0Fc850rKGL3zKN0WkpaC205AeB?= =?us-ascii?Q?zVknmJGqyKTSPX0/6V6UDrCxFAtrYadvFT65ETe467Mw0HH4fUMiwqMIAohZ?= =?us-ascii?Q?xXHNK/GkzLD8ujMwrvB0SErEL/C0c05QrKYg/Kb0nwMxf6AU4McCNETwC18I?= =?us-ascii?Q?kbTjLYqXI1egudnxPLgNQPO4N2AgHO32yqX+musFnR6VMVZuV/m+t6JOfMf8?= =?us-ascii?Q?SVZGMBYqhZV9c7j1dSN5lRXeNhMcsrVTnFHN/8zt8eM9iQMgkveE/wH2IZZM?= =?us-ascii?Q?ZMdsAikfXHCGB4QSZNwavq3rPlYHBzJlqAFzPlRvkML9lZW6UySuMDnw88zr?= =?us-ascii?Q?5DaQrcqp+nrO+jOR50k5QN4/W3wFRxYneVxkIyOMdFaOYuyEmOmXbKgVYtu6?= =?us-ascii?Q?XQNQ+ukwy7U62LG8/+8iksP4LoF1pBBapW5GYDP/WYF2D8JHfv+9g+Wl7fSC?= =?us-ascii?Q?aWR5AJN91oVUr0BJIBNpA8BT7UYU7tC2dcJqfBv7xBGCGhkZt1y+81NP7Lm0?= =?us-ascii?Q?WYJmRjDdrJ7NVCWg3PucmUpt4fYHsfNwdQnEftZC91JdtUnmcG+6D6GWGU5S?= =?us-ascii?Q?TWxY7ZffEtHpbTfn11zy/2ZdGKSnvvPSkR4z5BfavuW4tZmOPC5JU91Ko9i0?= =?us-ascii?Q?+tQqOyxknv9UYw5zmti1tqYchjAcSd9W54cdhPdLeRmCw2G5l11elTW24JtX?= =?us-ascii?Q?4XXKCmC0nhA951SKwD6nfeJ+gIaeE+CAgEmaMjqPMfVbFxTMBAq1lwlLlPsr?= =?us-ascii?Q?Y8fwKTYU3Ehj7tJ+/DWx6P/ra5IWllhcpiAfDsnSCwhKohJe+3jGlpRGzi7l?= =?us-ascii?Q?K6YjyoyKEiwMa7AtLiIXXcMCayB9HUEjY0630kEA1O418OxR3zDO/UfUIDJ8?= =?us-ascii?Q?yPTO5f9k6pZpkW+AnM1GxR6A1ixTdQvImz0M?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(1800799024)(36860700013)(376014);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 May 2025 02:57:21.4099 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 4b997295-dd6a-46b7-e582-08dd8b808e44 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=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: SJ5PEPF000001CC.namprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS5PPF016FC81DF X-ZohoMail-DKIM: pass (identity @amd.com) X-ZM-MESSAGEID: 1746413862914019000 Content-Type: text/plain; charset="utf-8" remove_shm_holes_for_domU() is unnecessarily complex: it re-creates the extended regions from scratch. Move the rangeset into find_domU_holes() and create the extended regions only once. This makes is simpler to further manipulate the rangeset for removing other regions. Remove now-unused remove_shm_holes_for_domU(). Signed-off-by: Stewart Hildebrand Reviewed-by: Stefano Stabellini --- xen/arch/arm/domain_build.c | 46 ++++++++++++----- xen/arch/arm/include/asm/static-shmem.h | 9 ---- xen/arch/arm/static-shmem.c | 65 ------------------------- 3 files changed, 35 insertions(+), 85 deletions(-) diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c index a0f3c074337d..3dcdd7a8c46f 100644 --- a/xen/arch/arm/domain_build.c +++ b/xen/arch/arm/domain_build.c @@ -1256,34 +1256,58 @@ static int __init find_domU_holes(const struct kern= el_info *kinfo, struct membanks *ext_regions) { unsigned int i; - uint64_t bankend; const uint64_t bankbase[] =3D GUEST_RAM_BANK_BASES; const uint64_t banksize[] =3D GUEST_RAM_BANK_SIZES; const struct membanks *kinfo_mem =3D kernel_info_get_mem_const(kinfo); - int res =3D -ENOENT; + struct rangeset *mem_holes; + int res; + + mem_holes =3D rangeset_new(NULL, NULL, 0); + if ( !mem_holes ) + return -ENOMEM; =20 for ( i =3D 0; i < GUEST_RAM_BANKS; i++ ) { - struct membank *ext_bank =3D &(ext_regions->bank[ext_regions->nr_b= anks]); + uint64_t bankend, start, size =3D 0; =20 - ext_bank->start =3D ROUNDUP(bankbase[i] + kinfo_mem->bank[i].size,= SZ_2M); + start =3D ROUNDUP(bankbase[i] + kinfo_mem->bank[i].size, SZ_2M); =20 bankend =3D ~0ULL >> (64 - p2m_ipa_bits); bankend =3D min(bankend, bankbase[i] + banksize[i] - 1); - if ( bankend > ext_bank->start ) - ext_bank->size =3D bankend - ext_bank->start + 1; + + if ( bankend > start ) + size =3D bankend - start + 1; =20 /* 64MB is the minimum size of an extended region */ - if ( ext_bank->size < MB(64) ) + if ( size < MB(64) ) continue; - ext_regions->nr_banks++; - res =3D 0; + + res =3D rangeset_add_range(mem_holes, PFN_DOWN(start), PFN_DOWN(ba= nkend)); + if ( res ) + { + printk(XENLOG_ERR "Failed to add: %#"PRIx64"->%#"PRIx64"\n", + start, start + size - 1); + goto out; + } } =20 + /* Remove static shared memory regions */ + res =3D remove_shm_from_rangeset(kinfo, mem_holes); if ( res ) - return res; + goto out; + + res =3D rangeset_report_ranges(mem_holes, 0, + PFN_DOWN((1ULL << p2m_ipa_bits) - 1), + add_ext_regions, ext_regions); + if ( res ) + ext_regions->nr_banks =3D 0; + else if ( !ext_regions->nr_banks ) + res =3D -ENOENT; =20 - return remove_shm_holes_for_domU(kinfo, ext_regions); + out: + rangeset_destroy(mem_holes); + + return res; } =20 static int __init find_host_extended_regions(const struct kernel_info *kin= fo, diff --git a/xen/arch/arm/include/asm/static-shmem.h b/xen/arch/arm/include= /asm/static-shmem.h index 94eaa9d500f9..ad8267c6bfbe 100644 --- a/xen/arch/arm/include/asm/static-shmem.h +++ b/xen/arch/arm/include/asm/static-shmem.h @@ -28,9 +28,6 @@ void init_sharedmem_pages(void); int remove_shm_from_rangeset(const struct kernel_info *kinfo, struct rangeset *rangeset); =20 -int remove_shm_holes_for_domU(const struct kernel_info *kinfo, - struct membanks *ext_regions); - int make_shm_resv_memory_node(const struct kernel_info *kinfo, int addrcel= ls, int sizecells); =20 @@ -74,12 +71,6 @@ static inline int remove_shm_from_rangeset(const struct = kernel_info *kinfo, return 0; } =20 -static inline int remove_shm_holes_for_domU(const struct kernel_info *kinf= o, - struct membanks *ext_regions) -{ - return 0; -} - static inline int make_shm_resv_memory_node(const struct kernel_info *kinf= o, int addrcells, int sizecells) { diff --git a/xen/arch/arm/static-shmem.c b/xen/arch/arm/static-shmem.c index e8d4ca3ba3ff..06f32be097c8 100644 --- a/xen/arch/arm/static-shmem.c +++ b/xen/arch/arm/static-shmem.c @@ -820,71 +820,6 @@ int __init remove_shm_from_rangeset(const struct kerne= l_info *kinfo, return 0; } =20 -int __init remove_shm_holes_for_domU(const struct kernel_info *kinfo, - struct membanks *ext_regions) -{ - const struct membanks *shm_mem =3D kernel_info_get_shm_mem_const(kinfo= ); - struct rangeset *guest_holes; - unsigned int i; - paddr_t start; - paddr_t end; - int res; - - /* No static shared memory region. */ - if ( shm_mem->nr_banks =3D=3D 0 ) - return 0; - - dt_dprintk("Remove static shared memory holes from extended regions of= DomU\n"); - - guest_holes =3D rangeset_new(NULL, NULL, 0); - if ( !guest_holes ) - return -ENOMEM; - - /* Copy extended regions sets into the rangeset */ - for ( i =3D 0; i < ext_regions->nr_banks; i++ ) - { - start =3D ext_regions->bank[i].start; - end =3D start + ext_regions->bank[i].size; - - res =3D rangeset_add_range(guest_holes, PFN_DOWN(start), - PFN_DOWN(end - 1)); - if ( res ) - { - printk(XENLOG_ERR - "Failed to add: %#"PRIpaddr"->%#"PRIpaddr", error: %d\n= ", - start, end, res); - goto out; - } - } - - /* Remove static shared memory regions */ - res =3D remove_shm_from_rangeset(kinfo, guest_holes); - if ( res ) - goto out; - - /* - * Take the interval of memory starting from the first extended region= bank - * start address and ending to the end of the last extended region ban= k. - */ - i =3D ext_regions->nr_banks - 1; - start =3D ext_regions->bank[0].start; - end =3D ext_regions->bank[i].start + ext_regions->bank[i].size - 1; - - /* Reset original extended regions to hold new value */ - ext_regions->nr_banks =3D 0; - res =3D rangeset_report_ranges(guest_holes, PFN_DOWN(start), PFN_DOWN(= end), - add_ext_regions, ext_regions); - if ( res ) - ext_regions->nr_banks =3D 0; - else if ( !ext_regions->nr_banks ) - res =3D -ENOENT; - - out: - rangeset_destroy(guest_holes); - - return res; -} - void __init shm_mem_node_fill_reg_range(const struct kernel_info *kinfo, __be32 *reg, int *nr_cells, int addrcells, int sizecells) --=20 2.49.0 From nobody Fri Oct 31 16:19:11 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=1746414058; cv=pass; d=zohomail.com; s=zohoarc; b=EbVBGqxyh7waCwmIIJ9cZwjHS4u1XC3bDF4HG3SCNy9G6q59wN8CFiQcf+exisBxzvzuhOSjgOBrwaO7f5iW8vgtbCXldIIuAFSHF9MSgr+4wsZ7Ru04zzWMdgzsnPZfLSKiO1MCR5QhWOzQo4DqqT3Smqfle2NcM46DWRRuj7c= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1746414058; 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=1vYNosH374LDHd8Qsbgs/FAQVGbH1a3F/WMoojDLEC8=; b=LK/s6Fhq7mX6odTioIe3MUeJ8aTJdtApwXIDVLCLnZd2T5UQ0gvo1Sg8hB8r/Rz3AZg6UokLahjTi+zWTei8nAzhUh8lmEzW4dA6Don2D/Ng3XAL0SfHLEBcIi1spGg6Rq7Dkp2gtxJ42Q2KYKs0kdxeRpRyR4LNKVupJlZXi6Y= 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 1746414058657622.0988340142981; Sun, 4 May 2025 20:00:58 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.975789.1363125 (Exim 4.92) (envelope-from ) id 1uBm4S-0004lM-HF; Mon, 05 May 2025 03:00:44 +0000 Received: by outflank-mailman (output) from mailman id 975789.1363125; Mon, 05 May 2025 03:00:44 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1uBm4S-0004lF-EQ; Mon, 05 May 2025 03:00:44 +0000 Received: by outflank-mailman (input) for mailman id 975789; Mon, 05 May 2025 03:00:43 +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 1uBm1R-0000ZH-Cm for xen-devel@lists.xenproject.org; Mon, 05 May 2025 02:57:37 +0000 Received: from NAM04-DM6-obe.outbound.protection.outlook.com (mail-dm6nam04on2062b.outbound.protection.outlook.com [2a01:111:f403:2409::62b]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS id b25f6222-295c-11f0-9ffb-bf95429c2676; Mon, 05 May 2025 04:57:35 +0200 (CEST) Received: from MW4PR04CA0330.namprd04.prod.outlook.com (2603:10b6:303:82::35) by PH7PR12MB6835.namprd12.prod.outlook.com (2603:10b6:510:1b5::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8699.21; Mon, 5 May 2025 02:57:28 +0000 Received: from SJ5PEPF000001CC.namprd05.prod.outlook.com (2603:10b6:303:82:cafe::11) by MW4PR04CA0330.outlook.office365.com (2603:10b6:303:82::35) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8699.29 via Frontend Transport; Mon, 5 May 2025 02:57:28 +0000 Received: from SATLEXMB04.amd.com (165.204.84.17) by SJ5PEPF000001CC.mail.protection.outlook.com (10.167.242.41) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.8722.18 via Frontend Transport; Mon, 5 May 2025 02:57:28 +0000 Received: from SATLEXMB03.amd.com (10.181.40.144) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Sun, 4 May 2025 21:57:27 -0500 Received: from ubuntu.mshome.net (10.180.168.240) by SATLEXMB03.amd.com (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.39 via Frontend Transport; Sun, 4 May 2025 21:57:26 -0500 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: b25f6222-295c-11f0-9ffb-bf95429c2676 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=vJKJ3l2udGrbZe1eahSinKvUmmDC23VwffH2yLE7QK6X/mbVbfIfuRMWAvPJaI9OcxLf2DrxjdyaraRhw/+Cn72Zrr+NNySGHbJOXd28h+KORXUcj/5CNXLxsqs3jAjLkDdeUcwxbCjs1jSntXc9c2ObCN0vz+tYWqBZi7l6XOFAtNNG/YDEYmD1VYyCY+SHUXnYarE0xqZqAysstLsUl/Y7C/JuyIJs11ovnFWOLe8ZZvjOTw3YSRyYPHMZ64qt76Tk1SmI/r4wBPfeNsFW4cV5Gg2vbUHXqg+Pqs/7GmLNHbOMBPwVeSZg2+IVV2rISzWJ1rP6bT7F+idOj0ByFw== 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=1vYNosH374LDHd8Qsbgs/FAQVGbH1a3F/WMoojDLEC8=; b=y04NkEporkXEWcPyrl8M5XKg4Z54rnIfrs1aV0EfGBUh1T9MvEgHCa9zG5jS3+mEs6sOKmxrxy1p3QKmWDe68+NaA2MAVuCN4T++MzeVRZVBD+dm8fNiy3C1sZ7XTHhO9koyziOYfw4qPPpI5OhAmBS0740YxaVZqwyDGmAG7AhkUnqOQcmeYE+IEVfpKu78/7R60jIiWovGLUQQxdNIGVDc61Wba1ktRTp4JV7bpN5/9HIVba323TzM9a5Dj5Lg1Lf6EqeIST1p9Lwc/IJa7rH3lWRHGKKB3yTItX/uTD7fFQ9OzfkU7Rr9NF45QxrSZAx3bShSyQODofIqLVDrLw== 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=1vYNosH374LDHd8Qsbgs/FAQVGbH1a3F/WMoojDLEC8=; b=MdrM8Dpv6lFYFWKjTpzX2Lik8g+VRHslLl81VHysWb0IYT69nNmH1oKJMzqg+XvwYQCICjauaq2BjsCQ1tMNmaVssOar1eCRpFwN5CmSP1wmZeamY3EsU3rrG6Ee61IEHP77JNm23WP3aS5Uye7r2/9rsgrShGlpwvebgiqqKTU= 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=SATLEXMB04.amd.com; pr=C From: Stewart Hildebrand To: CC: Stewart Hildebrand , Andrew Cooper , Anthony PERARD , Michal Orzel , Jan Beulich , "Julien Grall" , =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= , Stefano Stabellini Subject: [PATCH 4/6] rangeset: introduce rangeset_subtract Date: Sun, 4 May 2025 22:56:27 -0400 Message-ID: <20250505025631.207529-5-stewart.hildebrand@amd.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250505025631.207529-1-stewart.hildebrand@amd.com> References: <20250505025631.207529-1-stewart.hildebrand@amd.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: None (SATLEXMB04.amd.com: stewart.hildebrand@amd.com does not designate permitted sender hosts) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SJ5PEPF000001CC:EE_|PH7PR12MB6835:EE_ X-MS-Office365-Filtering-Correlation-Id: c38d09a6-0714-4a27-5d2e-08dd8b80926d X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|36860700013|82310400026|376014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?UZb1mmPA4CUZ1fcJdmgSxmy8YP0/vRlFTORt6xmO/UQNs0XkDnlmBUmYaptv?= =?us-ascii?Q?xAb04U9Vh95zZMSg7s/hEFSlcZilRfaQRH3RxQGGNEYtb8Zr31NWM0jCfh6N?= =?us-ascii?Q?0boEyTh2GRXilHcahfvl7DJd3ITWvHg203CQQOXkHlPH7vVyQSb0eXJeMBwm?= =?us-ascii?Q?WehfDY7ltLFhusvFLF3Q0MES3bQetK0VydYpgfm+jp68Js4PB0vroqT8zEPb?= =?us-ascii?Q?aSgpe8/hl//d0QkTxWUWyesB4rj784SYMg6gpYK2S78YUAEUh0dEYaxdUpXF?= =?us-ascii?Q?Z6GYCRUo8JsXgR/Mu6poE1tlJORPc8KeMCQWfeSPyzPZLnyxLzrLpIEGlpEj?= =?us-ascii?Q?UxLqEwKmcJKj+X27Ok+QEYbx8c+TIsWZJssyzcQSUip4cGK4OAWe3p/8k9L8?= =?us-ascii?Q?DMH6ytUsVzMGY+qK/6+pONOB837L811nZ95j/Jq6rYN2R+1cvJuHznAvD6Qu?= =?us-ascii?Q?gyg4kUxCkTkKmTM0vAS7Yn8LILbqn2HU54Ibt54P28iZi+Ue28nRJmPHXSzM?= =?us-ascii?Q?thPIyMgLix5z+HuDeDZAff2rrV7h7fct18/h8Ec96UPpJSpQK7ODmoRrEeVy?= =?us-ascii?Q?S9rujGURU8gWglLjhixyAYxaJFcNrHhINxL6UeUYejdlA3q6m/8bs1nwbDuk?= =?us-ascii?Q?SGquz2D5CFRnYDyorVpQR+ksl3nWtUC0GOoNKHvI8O5vVtMQDRVhbYq1dZi4?= =?us-ascii?Q?5p8LSq61sCteUx3LPUEh/JqqSuupFB9RbHCrXTd+ZVjRElLH5dUFP5CQ1nrj?= =?us-ascii?Q?2kyQjauQmREWPYiI+Mwrx6MVCMphTA1jvhUIfoodjBEUetNZjuee7lxJXrP7?= =?us-ascii?Q?gGLVvPds0xqT2GxuCuwLWqMILM41Dym9BkKyO+/C1q9hxniihULbwa5o7YNy?= =?us-ascii?Q?e2HPkAPb1S/N+AvBfcr0cE701NcuDHROxzY3/i87UI3vdiZq2+HKe9V6kpHO?= =?us-ascii?Q?ogfjHZI+gSvSducWJHkNIGpmel2M1CfBOnOkK4rF8IT0xLWlLlIbpOr0frof?= =?us-ascii?Q?zWJ2KV6O2tl6JxzjLtRgU1AsRTv+S0LvkKUZWoLcPo0EN8iA3M1AfPvck5Vl?= =?us-ascii?Q?ccchfylqJCP9d6gyKBNwP4nR4KyAbHzkkE/kJInY1sb88h1roW6fdCNzocuR?= =?us-ascii?Q?4Jn40dTxPPnFbyfSlrdWHNIijTOl9F77IxWagIkDFcRPeyGeyVs5HrBChGOg?= =?us-ascii?Q?+GpEG8LF4TSSks+pqu0Ni0Xje5I/aNUe8qjnUDDzsTRMOpQbH1bHJw/Jdr2F?= =?us-ascii?Q?U6EJxgcTb0USq+eYYnCYuqv/YsbWK9zEpNjzjIsj6tkfF1lES50XKFv8JpBc?= =?us-ascii?Q?5YFnRkKeRxucOrzvoBQj2KWxn/yemZ9Vb0eTNMhABs4JGEscJ61Sr3adNZdk?= =?us-ascii?Q?XogDAYjtYkVNr0igYKH5833hAK+nHhFKCGMnjcvon5HaZJAeTcjnAVul15Eh?= =?us-ascii?Q?Dx2/GMX9Fmc6dFl1upzygc1+tcNQTuCiIElWcoUf225iLfNbpv8KSDSPQvw2?= =?us-ascii?Q?f1q6+7Q09gDn3hhyoW2s+hYprA3eQI9CJR3b?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(36860700013)(82310400026)(376014);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 May 2025 02:57:28.3791 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: c38d09a6-0714-4a27-5d2e-08dd8b80926d 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=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: SJ5PEPF000001CC.namprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR12MB6835 X-ZohoMail-DKIM: pass (identity @amd.com) X-ZM-MESSAGEID: 1746414060477116600 Content-Type: text/plain; charset="utf-8" Introduce rangeset_subtract() to remove regions in r2 from r1. Signed-off-by: Stewart Hildebrand --- xen/common/rangeset.c | 12 ++++++++++++ xen/include/xen/rangeset.h | 3 +++ 2 files changed, 15 insertions(+) diff --git a/xen/common/rangeset.c b/xen/common/rangeset.c index e75871039087..b9e8912fb1c3 100644 --- a/xen/common/rangeset.c +++ b/xen/common/rangeset.c @@ -397,6 +397,18 @@ int rangeset_merge(struct rangeset *r1, struct rangese= t *r2) return rangeset_report_ranges(r2, 0, ~0UL, merge, r1); } =20 +static int cf_check subtract(unsigned long s, unsigned long e, void *data) +{ + struct rangeset *r =3D data; + + return rangeset_remove_range(r, s, e); +} + +int rangeset_subtract(struct rangeset *r1, struct rangeset *r2) +{ + return rangeset_report_ranges(r2, 0, ~0UL, subtract, r1); +} + int rangeset_add_singleton( struct rangeset *r, unsigned long s) { diff --git a/xen/include/xen/rangeset.h b/xen/include/xen/rangeset.h index 96c918082501..817505badf6f 100644 --- a/xen/include/xen/rangeset.h +++ b/xen/include/xen/rangeset.h @@ -85,6 +85,9 @@ int rangeset_consume_ranges(struct rangeset *r, /* Merge rangeset r2 into rangeset r1. */ int __must_check rangeset_merge(struct rangeset *r1, struct rangeset *r2); =20 +/* Subtract rangeset r2 from rangeset r1. */ +int __must_check rangeset_subtract(struct rangeset *r1, struct rangeset *r= 2); + /* Add/remove/query a single number. */ int __must_check rangeset_add_singleton( struct rangeset *r, unsigned long s); --=20 2.49.0 From nobody Fri Oct 31 16:19:11 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=1746414055; cv=pass; d=zohomail.com; s=zohoarc; b=I13tt0DGe3pIlA1IbBjSnhjSPsXmjFAa+uRNroLNUxs4DN5HQ4ay0VINKHMa78n6G5m/BfDOU6sRbAjBm6/c47sCs64sMt22bd7jHXZ1758yG6t04Jqh3TegVn8dnwIrIh94xAPMjZ7bQEQ0UCnUfJs8UIpQ+yNkcKXbmI+vbCk= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1746414055; 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=KEvx1wmn01iTjM6pupbHY1kYSQPlwozYMYZ4oM7o7v0=; b=b5YcZIq+LKViMw6v2CnYEMat5/ggF+Z5czo2Ebx73JdoHXSvHJDK+4NZJvydc2L5tR5kVESlP+SxR231xDBLz5nbgHbnG0OSDsQefZsFKF9+7UXewKaJQ/Cvzwa07+AwtDi/7txA/L9SLXzuuXPNuxzBvLpfw9UZokzeT+GGLAA= 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 1746414055035600.769080745567; Sun, 4 May 2025 20:00:55 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.975778.1363106 (Exim 4.92) (envelope-from ) id 1uBm4L-0004Al-OH; Mon, 05 May 2025 03:00:37 +0000 Received: by outflank-mailman (output) from mailman id 975778.1363106; Mon, 05 May 2025 03:00:37 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1uBm4L-0004AU-Jp; Mon, 05 May 2025 03:00:37 +0000 Received: by outflank-mailman (input) for mailman id 975778; Mon, 05 May 2025 03:00:36 +0000 Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254] helo=se1-gles-sth1.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1uBm1Y-0000Iv-NO for xen-devel@lists.xenproject.org; Mon, 05 May 2025 02:57:44 +0000 Received: from NAM12-BN8-obe.outbound.protection.outlook.com (mail-bn8nam12on2062d.outbound.protection.outlook.com [2a01:111:f403:2418::62d]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS id b6bdf70b-295c-11f0-9eb4-5ba50f476ded; Mon, 05 May 2025 04:57:43 +0200 (CEST) Received: from MW4PR02CA0017.namprd02.prod.outlook.com (2603:10b6:303:16d::24) by CH2PR12MB4246.namprd12.prod.outlook.com (2603:10b6:610:a9::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8699.26; Mon, 5 May 2025 02:57:36 +0000 Received: from SJ5PEPF000001C9.namprd05.prod.outlook.com (2603:10b6:303:16d:cafe::13) by MW4PR02CA0017.outlook.office365.com (2603:10b6:303:16d::24) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8699.27 via Frontend Transport; Mon, 5 May 2025 02:57:36 +0000 Received: from SATLEXMB04.amd.com (165.204.84.17) by SJ5PEPF000001C9.mail.protection.outlook.com (10.167.242.37) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.8722.18 via Frontend Transport; Mon, 5 May 2025 02:57:35 +0000 Received: from SATLEXMB03.amd.com (10.181.40.144) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Sun, 4 May 2025 21:57:34 -0500 Received: from ubuntu.mshome.net (10.180.168.240) by SATLEXMB03.amd.com (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.39 via Frontend Transport; Sun, 4 May 2025 21:57:33 -0500 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: b6bdf70b-295c-11f0-9eb4-5ba50f476ded ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=V59qptvdI9oZhyuIamV+aWWeCLQMPRNybFvSaZH3y/fGC+w9goYscAqItYnUYpJsVw2JJeWFDF/Ro/xJ8M5zY+SUIGIh1abb521FbH4eIlbjAPi73n9vHHiLuFE1gGW7RSawUyA4vYun2dExAFYmxSq959uVCnMycN/QJ6f5bKAfZ33Nt462Mxj8jAri/Lv2qTrAb7KFjZ9m6qfRKIJp+Dqs89H+5SGYv4W/58myh4pKBlgDt0lYda0vwPqAMZ7HfoNBZohrZ4t0Ge3q5sXpzK4JsJSij4XtJdlLgD9tuipX3aGeBpO/qVYE/9JN2T5zVexLvb8MgUIUDJOOaibEMQ== 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=KEvx1wmn01iTjM6pupbHY1kYSQPlwozYMYZ4oM7o7v0=; b=TzbXQDwXPdL/eGEeRhFtaTDe18lTNB5658MU+17FxN0wm9on3EYmMhHV94J5ZCt6ZSBymnDabQUPEdO6Gqwqg7pIf6larykWKBK3vWRbp5NspfWhrfDGRiDeP8ArxwWOZAsfEKR5eC8wm7vjLqrhh/OotdAO+OocjDL9wNUW3hpbrjVvX30VGKLGGgpObS7Vn45xGfH5fm7zeobmETYbubMAWQ+7vQaMHxM1DbhEHMXOEmFTttuZ+KgHJPgZDc3a1SNFt1WgzirHdWXqaQt7+dAn0EZ6cPrNC6/h6TRayUFuZ2Wu8qSxCwtAVGzSG25YlWezjXKipsk22vrh4jvTPQ== 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=KEvx1wmn01iTjM6pupbHY1kYSQPlwozYMYZ4oM7o7v0=; b=elUap8Gi6nWYoNAGky5eNCqqmKMkD0Xx/kJS5XXKLPTVtvMk3DNE5WGDRAB0MuLCSKa6Pz5wZGoi5kTgLQN05FgEhhJYXjBMGm0KhciXFbgTkNrB1JXwARsggqWr2Vp8PAduz4m1xLGB2JfKxjPc4F1SwiXpaInOD1FeT6HhEPc= 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=SATLEXMB04.amd.com; pr=C From: Stewart Hildebrand To: CC: Stewart Hildebrand , Stefano Stabellini , Julien Grall , Bertrand Marquis , Michal Orzel , "Volodymyr Babchuk" Subject: [PATCH 5/6] xen/arm: exclude xen,reg{-cacheable} from domU extended regions Date: Sun, 4 May 2025 22:56:28 -0400 Message-ID: <20250505025631.207529-6-stewart.hildebrand@amd.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250505025631.207529-1-stewart.hildebrand@amd.com> References: <20250505025631.207529-1-stewart.hildebrand@amd.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: None (SATLEXMB04.amd.com: stewart.hildebrand@amd.com does not designate permitted sender hosts) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SJ5PEPF000001C9:EE_|CH2PR12MB4246:EE_ X-MS-Office365-Filtering-Correlation-Id: 851ef4b8-c452-49c8-56c0-08dd8b8096aa X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|82310400026|376014|36860700013|1800799024; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?Db7ltdOZ4l0YdJJowGeCr2YmjU85D6oCcICG1z+6JluPvXcqjAFWKe1UxMYx?= =?us-ascii?Q?zuUjGu1UABwfM20niFPO75Zt+omAUXSjyu6rg8LTFpvmRGFJC3ncNFSg2657?= =?us-ascii?Q?2bAmnG1k9uPKHbkH/gMrOBkjQzrBC2jV7qWbxuvF+AKrmcjh9ZkRNvMYE6FJ?= =?us-ascii?Q?Xt+CqU4A8nV5JTIw0qhOVmykkmNXsoZ14xkOxzOUPiZVRI+ksKwDw3C9SA6E?= =?us-ascii?Q?tKZGbYee3jz96BpDPzO+rA6QWa8iRZslA7Y/ErlXl57VD2jvt7Q4cbL1+cd/?= =?us-ascii?Q?4eRuR2rVxMSjbr+oFAKZsfvPcF2yotA0dm+tTFqa4plxtPaoOycO63247663?= =?us-ascii?Q?avTl3x3xEm2E6rSH6ltbmeczNQWaIs9Mnzwuz7vPrBQPviaycA+YJ9UfW+Pl?= =?us-ascii?Q?06LH7iPcSTD3fSMw2l6uWVRcy2QAguZOgv+LtrLpR6AVaTqS5o1hXNDWfL42?= =?us-ascii?Q?Csqn+Yad98SsYfhFG8S4l13SC3gShPJnP9DCoY0wH4oLxcQXDmnku7x779DU?= =?us-ascii?Q?tbX2/Hw11S5Knp5dZDRjTzdS//Nv9FZdtcxkz7bmUnFwVOqZUDAV6uDZeHuo?= =?us-ascii?Q?8T6KRlqwP647JEHblSLNIWWqP5JocCV/cF6Bq62t2QlBx5JDHVxsvWMSD4Qp?= =?us-ascii?Q?56P2rzwYtXtpl6lZ/B5D60idtVoXOIXFNW9unWC623fGnxyonU+RWdS+a2gF?= =?us-ascii?Q?6UoE2OaN2mAxHLmQDvbrQ0zpu8bRIsDo1E/gZyzj2nDzXfnMis6cDA0O0jmZ?= =?us-ascii?Q?+Jy6mlrIg/U8XHtyIY5MJ0YSR2/mEJz6wqxHRS6KQV89/2jGMTu7JP+da9v2?= =?us-ascii?Q?6PsMh8RAM+Fc3fQtretd0ydYQA8Ps18qfi1ErMArOeGBJSgwdXVsIdb0PYNg?= =?us-ascii?Q?Cmq1HDlIleTpjW8DeWmn1b7Xydrf0jQK7zOvD6IvRQYZNy8lTJRod8AZ0iFD?= =?us-ascii?Q?DVA7zl56LIiq27lABIDmGnfmW1oob4m/Vq60PjMRqtB3gSmYnjn8CA9rDgpS?= =?us-ascii?Q?ek4wbiSx5cUHqg+K6ka7x7CuCdDehUVG80DeIThVXOIBlbXHWdVfwGIqywyA?= =?us-ascii?Q?JYhjjF5LtSUprilh3dLn3hrFcwl2gEt+tfgFsfKH3AN7rksojR1BB3DVE+3P?= =?us-ascii?Q?+2qwjoUgmlfx2aWYFD4qksUZtv56UauKrYN7ZJRG1zvNuVr+MZ0CIPTukTL2?= =?us-ascii?Q?G1QxcGUGEWrV74ZIJ3RfASnkHo2NsxZbGn8A03cAnIForVTypb/1LgAsD3UX?= =?us-ascii?Q?gLopwmb7eF/eSI/Tgatwt5u4Qi8h8csQr6/oOgpJRnu06sBfVK+lvMewE2iC?= =?us-ascii?Q?xXZNz/NiPRIxppVi6MIIm0GOvEgkmZYWyPGkhe2ixmvvJCGnp5JqBsMciX2S?= =?us-ascii?Q?Xz047uHhHFtCjfftba3Y+TneOVmNnvgf6YL/W8+5zhM1jyYvCcSmOjx76ttQ?= =?us-ascii?Q?lV7uEHLbccOtdEzwZvZncK93twKTALWozNgC2pos1wKY7wyY/99sqjYPUEMA?= =?us-ascii?Q?qmyyqkD4cDqLPTCtwrRcYskySO3pcvf6Cy0i?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(376014)(36860700013)(1800799024);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 May 2025 02:57:35.4879 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 851ef4b8-c452-49c8-56c0-08dd8b8096aa 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=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: SJ5PEPF000001C9.namprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH2PR12MB4246 X-ZohoMail-DKIM: pass (identity @amd.com) X-ZM-MESSAGEID: 1746414055858116600 Content-Type: text/plain; charset="utf-8" When a device is passed through to a dom0less domU, the xen,reg{-cacheable} ranges may overlap with the extended regions. Remove xen,reg{-cacheable} from extended regions. Signed-off-by: Stewart Hildebrand --- Not sure if we need a Fixes: tag, but if we do: Fixes: 2a2447757b3c ("xen/arm: implement domU extended regions") I investigated an alternate approach of parsing the partial device tree again to scan for xen,reg{-cacheable} properties, but it resulted in quite a lot of code duplication. Adding a rangeset pointer to "struct kernel_info" has a much smaller diffstat, and then we avoid the need to parse the partial device tree a second time. I discovered this issue when booting a dom0less domU with a device passed through. Partial device tree excerpt: passthrough { ... ... axi_uart16550_0: serial@a0001000 { clocks =3D <&uart_fixed_clk>; compatible =3D "ns16550a"; interrupt-parent =3D <&gic>; interrupts =3D <0 89 4>; reg =3D <0x0 0xa0001000 0x0 0x1000>; reg-shift =3D <2>; xen,reg =3D <0x0 0xa0001000 0x00 0x1000 0x0 0xa0001000>; xen,path =3D "/amba_pl@0/serial@a0000000"; xen,force-assign-without-iommu; }; }; The domU was assigned an extended region overlapping with MMIO of the passed through device: (XEN) d1: extended region 0: 0xa0000000->0x100000000 (XEN) d1: extended region 1: 0x200000000->0xf000000000 The domU panicked when attempting to initialize the device: [ 3.490068] a0001000.serial: ttyS0 at MMIO 0xa0001000 (irq =3D 15, base_= baud =3D 6249375) is a 16550A [ 3.498843] Unable to handle kernel NULL pointer dereference at virtual = address 0000000000000010 [ 3.498853] Mem abort info: [ 3.498855] ESR =3D 0x0000000096000044 [ 3.498859] EC =3D 0x25: DABT (current EL), IL =3D 32 bits [ 3.498864] SET =3D 0, FnV =3D 0 [ 3.498867] EA =3D 0, S1PTW =3D 0 [ 3.498870] FSC =3D 0x04: level 0 translation fault [ 3.498874] Data abort info: [ 3.498876] ISV =3D 0, ISS =3D 0x00000044, ISS2 =3D 0x00000000 [ 3.498879] CM =3D 0, WnR =3D 1, TnD =3D 0, TagAccess =3D 0 [ 3.498884] GCS =3D 0, Overlay =3D 0, DirtyBit =3D 0, Xs =3D 0 [ 3.498888] [0000000000000010] user address but active_mm is swapper [ 3.498894] Internal error: Oops: 0000000096000044 [#1] SMP [ 3.498899] Modules linked in: [ 3.498908] CPU: 0 UID: 0 PID: 1 Comm: swapper/0 Not tainted 6.12.10-ste= w #1 [ 3.498917] pstate: 400000c5 (nZcv daIF -PAN -UAO -TCO -DIT -SSBS BTYPE= =3D--) [ 3.498924] pc : mem_serial_out+0x18/0x20 [ 3.498936] lr : serial8250_do_set_mctrl+0x6c/0xc0 [ 3.498943] sp : ffff800081bab6d0 [ 3.498946] x29: ffff800081bab6d0 x28: ffff8000815e0dc8 x27: ffff000001c= 29c60 [ 3.498957] x26: 0000000000000000 x25: ffff00000347b900 x24: ffff0000055= 04c00 [ 3.498968] x23: ffff00000347b800 x22: 0000000000000000 x21: ffff800081b= 69d78 [ 3.498978] x20: ffff800081b69d78 x19: 0000000000000000 x18: fffffffffff= fffff [ 3.498989] x17: 3d20647561625f65 x16: 736162202c353120 x15: 3d207172692= 82030 [ 3.498999] x14: 3030313030306178 x13: ffff800081a21ff0 x12: 00000000000= 007fe [ 3.499010] x11: 00000000000002aa x10: ffff800081a4dff0 x9 : ffff800081a= 21ff0 [ 3.499020] x8 : 00000000fffff7ff x7 : ffff800081a4dff0 x6 : 00000000000= 00008 [ 3.499030] x5 : 0000000000000000 x4 : ffff800080797584 x3 : 00000000000= 00002 [ 3.499040] x2 : 0000000000000000 x1 : 0000000000000010 x0 : 00000000000= 00000 [ 3.499050] Call trace: [ 3.499053] mem_serial_out+0x18/0x20 [ 3.499059] serial8250_set_mctrl+0x34/0x40 [ 3.499065] serial_core_register_port+0x534/0x7dc [ 3.499075] serial_ctrl_register_port+0x10/0x1c [ 3.499084] uart_add_one_port+0x10/0x1c [ 3.499092] serial8250_register_8250_port+0x308/0x4c0 [ 3.499102] of_platform_serial_probe+0x2c4/0x48c [ 3.499110] platform_probe+0x68/0xdc [ 3.499120] really_probe+0xbc/0x298 [ 3.499128] __driver_probe_device+0x78/0x12c [ 3.499135] driver_probe_device+0xdc/0x160 [ 3.499142] __driver_attach+0x94/0x19c [ 3.499149] bus_for_each_dev+0x74/0xd0 [ 3.499155] driver_attach+0x24/0x30 [ 3.499162] bus_add_driver+0xe4/0x208 [ 3.499168] driver_register+0x60/0x128 [ 3.499176] __platform_driver_register+0x24/0x30 [ 3.499184] of_platform_serial_driver_init+0x1c/0x28 [ 3.499192] do_one_initcall+0x6c/0x1b0 [ 3.499199] kernel_init_freeable+0x178/0x258 [ 3.499209] kernel_init+0x20/0x1d0 [ 3.499218] ret_from_fork+0x10/0x20 [ 3.499228] Code: f9400800 1ac32021 8b21c001 d50332bf (39000022) [ 3.499233] ---[ end trace 0000000000000000 ]--- [ 3.499237] note: swapper/0[1] exited with irqs disabled [ 3.499247] Kernel panic - not syncing: Attempted to kill init! exitcode= =3D0x0000000b [ 3.499251] SMP: stopping secondary CPUs [ 3.499284] Kernel Offset: disabled [ 3.499286] CPU features: 0x00,00000080,00200000,0200420b [ 3.499292] Memory Limit: none [ 3.792412] ---[ end Kernel panic - not syncing: Attempted to kill init!= exitcode=3D0x0000000b ]--- --- xen/arch/arm/dom0less-build.c | 19 ++++++++++++++++++- xen/arch/arm/domain_build.c | 13 ++++++++++++- xen/arch/arm/include/asm/kernel.h | 1 + 3 files changed, 31 insertions(+), 2 deletions(-) diff --git a/xen/arch/arm/dom0less-build.c b/xen/arch/arm/dom0less-build.c index a356fc94fc4d..23178a801818 100644 --- a/xen/arch/arm/dom0less-build.c +++ b/xen/arch/arm/dom0less-build.c @@ -274,6 +274,14 @@ static int __init handle_passthrough_prop(struct kerne= l_info *kinfo, int res; paddr_t mstart, size, gstart; =20 + if ( !kinfo->xen_reg_assigned ) + { + kinfo->xen_reg_assigned =3D rangeset_new(NULL, NULL, 0); + + if ( !kinfo->xen_reg_assigned ) + return -ENOMEM; + } + /* xen,reg specifies where to map the MMIO region */ cell =3D (const __be32 *)xen_reg->data; len =3D fdt32_to_cpu(xen_reg->len) / ((address_cells * 2 + size_cells)= * @@ -315,6 +323,11 @@ static int __init handle_passthrough_prop(struct kerne= l_info *kinfo, mstart, gstart); return -EFAULT; } + + res =3D rangeset_add_range(kinfo->xen_reg_assigned, PFN_DOWN(gstar= t), + PFN_DOWN(gstart + size - 1)); + if ( res ) + return res; } =20 /* @@ -1006,7 +1019,11 @@ static int __init construct_domU(struct domain *d, =20 domain_vcpu_affinity(d, node); =20 - return alloc_xenstore_params(&kinfo); + rc =3D alloc_xenstore_params(&kinfo); + + rangeset_destroy(kinfo.xen_reg_assigned); + + return rc; } =20 void __init create_domUs(void) diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c index 3dcdd7a8c46f..da7c7c000f1f 100644 --- a/xen/arch/arm/domain_build.c +++ b/xen/arch/arm/domain_build.c @@ -1296,6 +1296,13 @@ static int __init find_domU_holes(const struct kerne= l_info *kinfo, if ( res ) goto out; =20 + if ( kinfo->xen_reg_assigned ) + { + res =3D rangeset_subtract(mem_holes, kinfo->xen_reg_assigned); + if ( res ) + goto out; + } + res =3D rangeset_report_ranges(mem_holes, 0, PFN_DOWN((1ULL << p2m_ipa_bits) - 1), add_ext_regions, ext_regions); @@ -2329,7 +2336,11 @@ static int __init construct_dom0(struct domain *d) if ( rc < 0 ) return rc; =20 - return construct_hwdom(&kinfo, NULL); + rc =3D construct_hwdom(&kinfo, NULL); + + rangeset_destroy(kinfo.xen_reg_assigned); + + return rc; } =20 int __init construct_hwdom(struct kernel_info *kinfo, diff --git a/xen/arch/arm/include/asm/kernel.h b/xen/arch/arm/include/asm/k= ernel.h index bdc96f4c18eb..b3c2d50e1e3d 100644 --- a/xen/arch/arm/include/asm/kernel.h +++ b/xen/arch/arm/include/asm/kernel.h @@ -50,6 +50,7 @@ struct kernel_info { #ifdef CONFIG_STATIC_SHM struct shared_meminfo shm_mem; #endif + struct rangeset *xen_reg_assigned; =20 /* kernel entry point */ paddr_t entry; --=20 2.49.0 From nobody Fri Oct 31 16:19:11 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=1746414054; cv=pass; d=zohomail.com; s=zohoarc; b=dX8UTWTC++qKLmL2CEvar1+CMj/6YD5o+cjGNT6nYwwJW4g4vjtzZCsnAb59RDDBB2M2xUxnsRWTUM5ffXzOg1P4lhjYJiAgiz6IW844kAuspCqCEsGunpA+Ct8TjBH76ynPCgBoHsXxOf2+Ncpaqo+mC5CbwUBHbPpvQ4XiKsM= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1746414054; 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=DRovNO/Yx1uPn92Z6qKe3rjpCFrCSbTdMugPgoXK3Mw=; b=QB0Lq2eQp5/FMpwVAmpuw1gl8+G5LBgeMI+8gc0mmoIjKpXrhAcvTmw08uaoOC0HgUPQkeCYkPLFtVLthCWgXMM9J2fbKFmZJhrWh/ZiKH3Bc6UdWrnzVEjwj3oBq1zkfkV4Um6u2tzV9eeKIuUvZBbh7V2z98rXUh2M8/U1h0Y= 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 17464140542261022.9195112932723; Sun, 4 May 2025 20:00:54 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.975782.1363112 (Exim 4.92) (envelope-from ) id 1uBm4M-0004E6-5f; Mon, 05 May 2025 03:00:38 +0000 Received: by outflank-mailman (output) from mailman id 975782.1363112; Mon, 05 May 2025 03:00:38 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1uBm4L-0004Cv-Ub; Mon, 05 May 2025 03:00:37 +0000 Received: by outflank-mailman (input) for mailman id 975782; Mon, 05 May 2025 03:00:36 +0000 Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254] helo=se1-gles-sth1.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1uBm1b-0000Iv-Lw for xen-devel@lists.xenproject.org; Mon, 05 May 2025 02:57:47 +0000 Received: from NAM02-BN1-obe.outbound.protection.outlook.com (mail-bn1nam02on2060e.outbound.protection.outlook.com [2a01:111:f403:2407::60e]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS id b892a49d-295c-11f0-9eb4-5ba50f476ded; Mon, 05 May 2025 04:57:46 +0200 (CEST) Received: from SJ0PR05CA0148.namprd05.prod.outlook.com (2603:10b6:a03:33d::33) by SJ0PR12MB8090.namprd12.prod.outlook.com (2603:10b6:a03:4ea::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8699.23; Mon, 5 May 2025 02:57:42 +0000 Received: from SJ5PEPF000001CF.namprd05.prod.outlook.com (2603:10b6:a03:33d:cafe::12) by SJ0PR05CA0148.outlook.office365.com (2603:10b6:a03:33d::33) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8699.22 via Frontend Transport; Mon, 5 May 2025 02:57:42 +0000 Received: from SATLEXMB04.amd.com (165.204.84.17) by SJ5PEPF000001CF.mail.protection.outlook.com (10.167.242.43) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.8722.18 via Frontend Transport; Mon, 5 May 2025 02:57:41 +0000 Received: from SATLEXMB03.amd.com (10.181.40.144) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Sun, 4 May 2025 21:57:40 -0500 Received: from ubuntu.mshome.net (10.180.168.240) by SATLEXMB03.amd.com (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.39 via Frontend Transport; Sun, 4 May 2025 21:57:40 -0500 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: b892a49d-295c-11f0-9eb4-5ba50f476ded ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Ya40Kl7vpXW58SbKmT4wy6fSIm6yQZAsZ3pJs0TyxTohPtIFlh1QisUALELjViLYtHBJnL0JemLqq1Zrkc5tM+68pHa/dxHec6ASswHnI2qBkCmFDO6h48pPlzi1rdjr1I8O/ONtUZ0BEvFW8yB5cQ4cBkrAZzCGMOqqGyLsI7LxjWfuWfdMaKiqHRsw1oAzVRblFprWrzs4q59Yog+E9Rin2mlt2zk2O2H4BUrwbqNreB8J+OnDnYhdJoYDTg/lHMWGV/VqLS9rd1nHxRxL8gIVUhoEgcu+fQFkqCd2OqLSiPqejS+T4+nzyEioOYQWZm8VuqVbxHxRokR+VALVfA== 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=DRovNO/Yx1uPn92Z6qKe3rjpCFrCSbTdMugPgoXK3Mw=; b=TthiXljDvLNdx5zvJIWcHuuRtyw4toSL7V75GexyIAEeepcD8MGNSrfJhUdm+wnTvuSvrC/XADFEUqQ6alh4plpDDxl4ib2+TyL4EtmL3pLluI6HmXkUMW2CkfNFvA4PxrLVDN7jKYOphgTeLL3QtqFUtrw4Qivq1gDXUBCTGKw2gRGtjJ0MUocqLc+gqxaQdJzg5yROUv3TYZupjWF/FEPC3glV37FTxLnmWbbve/s9U+WlNDWl2yY8paTH/VC6EFiUuvQ3WQ8G8Wgta6yLYaiHoReupQhSvhIQum7oQsrT+4/qMkBw0bUw6e1Jq7+qFYn6Ldp9cRwIT3fSnYME5Q== 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=DRovNO/Yx1uPn92Z6qKe3rjpCFrCSbTdMugPgoXK3Mw=; b=nPbo9aXLQz3ssy5pugGLZvdcz8zwjG1V0IQiawQ6gWo5wMO6bVCBsLk/lhFaFhfb0IZZJyynnoH4bSJSFdkG/gphtJUbGdRh2hGZ2KuXfphvGjR40GHHc2vhy6cGU5hlKUIpXUj7aDG3jk0wsCwk79+a02Pbgx9kky9sue0Pxkg= 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=SATLEXMB04.amd.com; pr=C From: Stewart Hildebrand To: CC: Stewart Hildebrand , Anthony PERARD , Juergen Gross Subject: [PATCH 6/6] tools/arm: exclude iomem from domU extended regions Date: Sun, 4 May 2025 22:56:29 -0400 Message-ID: <20250505025631.207529-7-stewart.hildebrand@amd.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250505025631.207529-1-stewart.hildebrand@amd.com> References: <20250505025631.207529-1-stewart.hildebrand@amd.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: None (SATLEXMB04.amd.com: stewart.hildebrand@amd.com does not designate permitted sender hosts) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SJ5PEPF000001CF:EE_|SJ0PR12MB8090:EE_ X-MS-Office365-Filtering-Correlation-Id: b2eaadf3-8d25-4491-f6dc-08dd8b809a5d X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|82310400026|36860700013|1800799024; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?OUaHII7SAKJin7t7jEG4qXm2nsBSz+4FHZWbvgzndMcMrjhMFlcf4lHRpSNv?= =?us-ascii?Q?smvr0bDGyOySVrnUlrY/eJN1wsplEPqeo9n6L1sESxpDbVWmaeydP5pLYRtM?= =?us-ascii?Q?cescWF7HVYuTwvqmNAh7fJQqCXLb2v8Z+Ovy9EPLClwHA4nami0/D7hKYk3j?= =?us-ascii?Q?8DWsW1a14+kjsz3CCNd/IwxHyRCxOKgMP6xmyPFhfBDKMQ2U7dHcBWW2G0J6?= =?us-ascii?Q?jqe7l5krdIVe0YjVmIFFFSo56DLraio3wq+BcSyJJkRkmSSCTOERswmUROYZ?= =?us-ascii?Q?mSkc8eARiqjMjXmjB6b0jt3/NEEmrh0cNvrZMZ3WScGbzCc8GdPEAXER4LS8?= =?us-ascii?Q?+V1dhqgTpg2JMuZ8fKhSqMngJltfxHAVXpuCsDCBP1UPqhjmhQlIrfSNI5hv?= =?us-ascii?Q?4f2tK5u6niJu+Efp9wHVQF8dCgkh2i0fUCXSKZx0mBP/PQygMZwKxbJ6QsCm?= =?us-ascii?Q?zMgsNNv5Hq0rtab+Clo4ndq/t7f6oDap2hEL55+7x2CgaWnLM/vJ6ZDsNChW?= =?us-ascii?Q?E4ej0IOJxReAnBF5SC1R3F3Josk2Z04+tGuVkSTUmSBzVve6TtEv81hSS+Ne?= =?us-ascii?Q?ia5QoX3PAGmit6ZlA+BAmD4240rX3Jv+Hb/s1iWTZO9gC+fWGq1uVT24A0O5?= =?us-ascii?Q?tAq3mKIy/z835DKWV4HmuR7EnQujZvn/dB67g/RKnuqmff8rta9gsEXxHIso?= =?us-ascii?Q?i3PmmW335A4Y/P55WCzZemHzDBbHf82f1jQ5/o9hQ6aXyBnQCfHqj8YT+HIV?= =?us-ascii?Q?MC2Nc0LtFDflXhQpH6KqIQ7EgfiuCypLPpafAVnEGMpdWY26J8nIwe7NS97j?= =?us-ascii?Q?JDCSyIpVD2IJKIfdaAvl+qZ1b3M+Gbhf//P+8UGqz20erH5SW9fd0ymammpJ?= =?us-ascii?Q?OM2GDfFR6DCp13hOFXKrGOb35FChSo5uDsHei5WUSjGxR6u/L8GQRob7zyAB?= =?us-ascii?Q?ilwFvXqYewh6K8L8lTqeO0NY71bd1QO6wb1n2izyy5xCAlIT2YvY6LtvtYFF?= =?us-ascii?Q?hcs5Vi3lS1kyx/FzbTz60BeuhdvPUHCcUN+rRrrahKzzo4AsVvzqLBF87uUU?= =?us-ascii?Q?ZxaCpQIsDGjbkQY4SUZxIUeTjoImwmSzBU+SaGCUAuy0Fd0hGwXCvu9aPVy6?= =?us-ascii?Q?D90lL8rMucKIqU/zd0uvR1VWjvPh8QvJFsLCT01r3EIB+OmUi/p826TCm4BN?= =?us-ascii?Q?e6zPok+5nILHfBn8+IFGxbuc+sP/dIX6TjG/CdV72lLpsVqzSA6oInKLIeYd?= =?us-ascii?Q?339B73G/Mbea+nX5BoqxnLaSioyIbeXauFYpjZcpsMJWCGiIqag1erSW2zJz?= =?us-ascii?Q?5QUYnj9UzuHzyzqxVaeU8tHinyDTwKdSeBUCbLSUbywmgKguFLlXs2O7lrv+?= =?us-ascii?Q?Rsy8EkYATuqu7gB3bJPtJgqOU/iTjVLa3+ISZsSG5nvFEpyA2M4agNdqUa6S?= =?us-ascii?Q?e49r0pWiNvk32ROiBIyK2f6RujjZc+NAbo7U8rUs4+iP8sHL3ZZOS6uoTn04?= =?us-ascii?Q?nVAKrcAjMmB9RBYEzCsqQA6A+5vJfMXlCJIH?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(82310400026)(36860700013)(1800799024);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 May 2025 02:57:41.6993 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: b2eaadf3-8d25-4491-f6dc-08dd8b809a5d 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=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: SJ5PEPF000001CF.namprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR12MB8090 X-ZohoMail-DKIM: pass (identity @amd.com) X-ZM-MESSAGEID: 1746414055368019000 Content-Type: text/plain; charset="utf-8" When a device is passed through to a xl domU, the iomem ranges may overlap with the extended regions. Remove iomem from extended regions. Signed-off-by: Stewart Hildebrand --- Not sure if we need a Fixes: tag, but if we do: Fixes: 57f87857dc2d ("libxl/arm: Add handling of extended regions for DomU") --- tools/libs/light/libxl_arm.c | 118 +++++++++++++++++++++++++++++------ 1 file changed, 99 insertions(+), 19 deletions(-) diff --git a/tools/libs/light/libxl_arm.c b/tools/libs/light/libxl_arm.c index 75c811053c7c..8ae16a1726fc 100644 --- a/tools/libs/light/libxl_arm.c +++ b/tools/libs/light/libxl_arm.c @@ -798,6 +798,8 @@ static int make_timer_node(libxl__gc *gc, void *fdt, return 0; } =20 +#define MAX_NR_EXT_REGIONS 256 + static int make_hypervisor_node(libxl__gc *gc, void *fdt, const libxl_version_info *vers) { @@ -821,7 +823,7 @@ static int make_hypervisor_node(libxl__gc *gc, void *fd= t, */ res =3D fdt_property_reg_placeholder(gc, fdt, GUEST_ROOT_ADDRESS_CELLS, GUEST_ROOT_SIZE_CELLS, - GUEST_RAM_BANKS + 1); + MAX_NR_EXT_REGIONS + 1); if (res) return res; =20 /* @@ -1517,17 +1519,29 @@ static void finalise_one_node(libxl__gc *gc, void *= fdt, const char *uname, =20 #define EXT_REGION_MIN_SIZE xen_mk_ullong(0x0004000000) /* 64MB */ =20 -static int finalize_hypervisor_node(libxl__gc *gc, struct xc_dom_image *do= m) +static int compare_iomem(const void *a, const void *b) +{ + const libxl_iomem_range *x =3D a, *y =3D b; + + if (x->gfn < y->gfn) + return -1; + if (x->gfn > y->gfn) + return 1; + return 0; +} + +static int finalize_hypervisor_node(libxl__gc *gc, + libxl_domain_build_info *b_info, + struct xc_dom_image *dom) { void *fdt =3D dom->devicetree_blob; - uint64_t region_size[GUEST_RAM_BANKS] =3D {0}, region_base[GUEST_RAM_B= ANKS], - bankend[GUEST_RAM_BANKS]; + uint64_t region_base[MAX_NR_EXT_REGIONS], region_size[MAX_NR_EXT_REGIO= NS]; uint32_t regs[(GUEST_ROOT_ADDRESS_CELLS + GUEST_ROOT_SIZE_CELLS) * - (GUEST_RAM_BANKS + 1)]; + (MAX_NR_EXT_REGIONS + 1)]; be32 *cells =3D ®s[0]; const uint64_t bankbase[] =3D GUEST_RAM_BANK_BASES; const uint64_t banksize[] =3D GUEST_RAM_BANK_SIZES; - unsigned int i, len, nr_regions =3D 0; + unsigned int i, j, len, nr_regions =3D 0; libxl_dominfo info; int offset, rc; =20 @@ -1542,20 +1556,90 @@ static int finalize_hypervisor_node(libxl__gc *gc, = struct xc_dom_image *dom) if (info.gpaddr_bits > 64) return ERROR_INVAL; =20 + qsort(b_info->iomem, b_info->num_iomem, sizeof(libxl_iomem_range), + compare_iomem); + /* * Try to allocate separate 2MB-aligned extended regions from the first * and second RAM banks taking into the account the maximum supported * guest physical address space size and the amount of memory assigned * to the guest. */ - for (i =3D 0; i < GUEST_RAM_BANKS; i++) { - region_base[i] =3D bankbase[i] + + for (i =3D 0; i < GUEST_RAM_BANKS && nr_regions < MAX_NR_EXT_REGIONS; = i++) { + struct { + uint64_t start; + uint64_t end; /* inclusive */ + } unallocated; + uint64_t size =3D 0; + + unallocated.start =3D bankbase[i] + ALIGN_UP_TO_2MB((uint64_t)dom->rambank_size[i] << XC_PAGE_SHIF= T); =20 - bankend[i] =3D ~0ULL >> (64 - info.gpaddr_bits); - bankend[i] =3D min(bankend[i], bankbase[i] + banksize[i] - 1); - if (bankend[i] > region_base[i]) - region_size[i] =3D bankend[i] - region_base[i] + 1; + unallocated.end =3D ~0ULL >> (64 - info.gpaddr_bits); + unallocated.end =3D min(unallocated.end, bankbase[i] + banksize[i]= - 1); + + if (unallocated.end > unallocated.start) + size =3D unallocated.end - unallocated.start + 1; + + if (size < EXT_REGION_MIN_SIZE) + continue; + + /* Exclude iomem */ + for (j =3D 0; j < b_info->num_iomem && nr_regions < MAX_NR_EXT_REG= IONS; + j++) { + struct { + uint64_t start; + uint64_t end; /* inclusive */ + } iomem; + + iomem.start =3D b_info->iomem[j].gfn << XC_PAGE_SHIFT; + iomem.end =3D ((b_info->iomem[j].gfn + b_info->iomem[j].number) + << XC_PAGE_SHIFT) - 1; + + if (iomem.end >=3D unallocated.start + && iomem.start <=3D unallocated.end) { + + if (iomem.start <=3D unallocated.start) { + unallocated.start =3D iomem.end + 1; + + if (iomem.end >=3D unallocated.end) + /* Complete overlap, discard unallocated region */ + break; + + /* Beginning overlap */ + continue; + } + + if (iomem.start > unallocated.start) { + assert(unallocated.end > unallocated.start); + size =3D iomem.start - unallocated.start; + + if (size >=3D EXT_REGION_MIN_SIZE) { + region_base[nr_regions] =3D unallocated.start; + region_size[nr_regions] =3D size; + nr_regions++; + } + + unallocated.start =3D iomem.end + 1; + + if (iomem.end >=3D unallocated.end) + /* End overlap, discard remaining unallocated regi= on */ + break; + } + } + } + + if (unallocated.end > unallocated.start + && nr_regions < MAX_NR_EXT_REGIONS) + { + size =3D unallocated.end - unallocated.start + 1; + + if (size >=3D EXT_REGION_MIN_SIZE) { + region_base[nr_regions] =3D unallocated.start; + region_size[nr_regions] =3D size; + nr_regions++; + } + } } =20 /* @@ -1565,16 +1649,12 @@ static int finalize_hypervisor_node(libxl__gc *gc, = struct xc_dom_image *dom) set_range(&cells, GUEST_ROOT_ADDRESS_CELLS, GUEST_ROOT_SIZE_CELLS, GUEST_GNTTAB_BASE, GUEST_GNTTAB_SIZE); =20 - for (i =3D 0; i < GUEST_RAM_BANKS; i++) { - if (region_size[i] < EXT_REGION_MIN_SIZE) - continue; - + for (i =3D 0; i < nr_regions; i++) { LOG(DEBUG, "Extended region %u: %#"PRIx64"->%#"PRIx64"", - nr_regions, region_base[i], region_base[i] + region_size[i]); + i, region_base[i], region_base[i] + region_size[i]); =20 set_range(&cells, GUEST_ROOT_ADDRESS_CELLS, GUEST_ROOT_SIZE_CELLS, region_base[i], region_size[i]); - nr_regions++; } =20 if (!nr_regions) @@ -1626,7 +1706,7 @@ int libxl__arch_domain_finalise_hw_description(libxl_= _gc *gc, =20 } =20 - res =3D finalize_hypervisor_node(gc, dom); + res =3D finalize_hypervisor_node(gc, &d_config->b_info, dom); if (res) return res; =20 --=20 2.49.0