From nobody Sun Feb 8 05:42:21 2026 Received: from MW6PR02CU001.outbound.protection.outlook.com (mail-westus2azon11012016.outbound.protection.outlook.com [52.101.48.16]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 6E25832C306 for ; Mon, 12 Jan 2026 20:23:24 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.48.16 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768249406; cv=fail; b=rTKLTfN/5/bikwkgS2KF40UuOlglVIESAmZFEexsCVkSqpTrUo9+W967tu3+f8BSnIs2doygjimeGbWYsCkyMJPJ8Rg5BTIaUCUIU9SJ8UVakFNl4Y1r2ONUxwKM5fNPMDj9LX85tr4nKUlgYmrOnijvBPK1UqAxVJ07tkQWvmM= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768249406; c=relaxed/simple; bh=tzPF3qlN5JHqpo7XzYQ2CYm7WBljWYw9r0J1HFzuB+w=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=Maekxa/Q9bfkRAnq+7GsIb6+D95xx+yRhbhwgpl7GzQzpDiW8g70d/fDNIn1Zp80V7fDXfXAbW9X2wh6iys3d93mRZbZkkqKLPG47Kb7v0kXnGQRwrf/gG5HGStKqc7kUDPK2lxU51b4O5/ubnXW0uHRdJLo2+gXTX0SClBxwT0= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com; spf=fail smtp.mailfrom=amd.com; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b=SIsLtivY; arc=fail smtp.client-ip=52.101.48.16 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=amd.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b="SIsLtivY" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=TwQ+q6fK3ZuuE0XoCYVYlGnP2nxKEKoUwfEpEhAEEemekYtAnr4PsekxLjTLppzND4CyBhDMmAP/JZY7iHwOMbqhtU+FZmPBFDI2Nzq38JM/0b3FpS+infm2aAkWrZU1QSpOJlZqs5ceAEmXrOtcrnMTtwpgmkOkG07e/74xanxOZyQ21wkP2h6HR5eU8yADelI2e5Xm4tgu1FUxv9aKHAUDXy4psNe/G90+XLls7rBeeXmChMdAVTRZRTSoYCnGP/lCuTmms4xfUkI4TSPwIoPIkglW3aRsqzXbxoT6Ed3ngVknbeUSu6VE6Dpkn53e8e5ml144QK87sEaFrUn9EQ== 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=EVlyJfBY+TxW8330bmRrTRH8oxQkICGB4rxgQ8APyxI=; b=SMhRUreZp97+ygqXYl6do1JaB5UjvZqbFp63LkYCWV64yxfhHTG3RxB2kOvtJ8whqDGXjXKj2LPTLnOfWpECY9HOYNWyTyiOXiTC/wwzH0jZ/+PJnlXk8H00GAyAbb+vYN0P/U/NoJn3qkROoUo4gZ2JWji0Nhv+gi/FdJ7KF2/AT7MA/s0uDWE9IrJr8JIbO+5rhNjJ42Pfr11GwzTujS1XJui1Mw1Yz464Hannx34I/Bd/ZbV1QYKSmvQXNf/tOxsnBJ7TDt8IXf6OPasvDsDV4P72ZolrCEHMvYQGdZwKhqV80OeMJO4X0lhXGtecLUGdej/tgOmicJJ4JCPTnA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=kvack.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=EVlyJfBY+TxW8330bmRrTRH8oxQkICGB4rxgQ8APyxI=; b=SIsLtivY6aCVcsk7YUD7rpr3/D0LEF8+6NsheNmpfmWDabHnDqHdKYl2BVfzBCOGW0hZsuDwfUpsD/oYB6WlZgdxPDxQpW1RL52doh0hDOE7+0m0djR6KQq0uXZh+KfbQ7k1mp42O0KkfTTCA+jG4/IKTr5L6bVcUUs4rLghjig= Received: from MN2PR22CA0020.namprd22.prod.outlook.com (2603:10b6:208:238::25) by DS7PR12MB8230.namprd12.prod.outlook.com (2603:10b6:8:ed::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9499.7; Mon, 12 Jan 2026 20:23:18 +0000 Received: from BL6PEPF0001AB4A.namprd04.prod.outlook.com (2603:10b6:208:238:cafe::1f) by MN2PR22CA0020.outlook.office365.com (2603:10b6:208:238::25) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9499.7 via Frontend Transport; Mon, 12 Jan 2026 20:23:09 +0000 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 (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 Received: from satlexmb07.amd.com (165.204.84.17) by BL6PEPF0001AB4A.mail.protection.outlook.com (10.167.242.68) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9520.1 via Frontend Transport; Mon, 12 Jan 2026 20:23:18 +0000 Received: from ellora.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; Mon, 12 Jan 2026 14:23:17 -0600 From: "Pratik R. Sampat" To: , , , CC: , , , , , , , , , , , Subject: [PATCH v2 1/2] mm/memory_hotplug: Add support to accept memory during hot-add Date: Mon, 12 Jan 2026 14:22:59 -0600 Message-ID: <20260112202300.43546-2-prsampat@amd.com> X-Mailer: git-send-email 2.52.0 In-Reply-To: <20260112202300.43546-1-prsampat@amd.com> References: <20260112202300.43546-1-prsampat@amd.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable 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: BL6PEPF0001AB4A:EE_|DS7PR12MB8230:EE_ X-MS-Office365-Filtering-Correlation-Id: 9b3ceb9d-9172-4ebd-d88d-08de52186c65 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|376014|36860700013|1800799024|82310400026; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?66JpWwiHsTOAXgCLyytz9jkMQG8Lwx3tltIBCghHs5/i428hdTAcbXdtZ5UV?= =?us-ascii?Q?nGeazdqvba/y7RcDT+mt9RiNrzN6RaKweXt+zG4UrW25B5EfuV/F2mGFH+bZ?= =?us-ascii?Q?wrNjk+dD4Wfl/stHYLuZrIspUy68sVR1jVsNinOPzMvUzriHEcGkjmK/+36l?= =?us-ascii?Q?HVSz1tLaFI76jO/G7TOLS65e9nCCTZ6gv9nySwhRWwSub2VVLsgSZcQCfnfW?= =?us-ascii?Q?7A/vLWBvPgEbOp+3GARfEMsdB5x889ErzO5OC+9bmZQtzi2hjc35I3p+4nSj?= =?us-ascii?Q?uRUeHrBT5f4sgiqURK+Jgcqgh4FcTIRXLzNqtk6SbHQ8b1x4Aw6EBiJL9wdr?= =?us-ascii?Q?xJpucwlxjVi4f3NE/Fya5JP+Knxi+pJR38+/IIU6ft8eNzrPc0cueA7yLKCm?= =?us-ascii?Q?Gc8rm/+mGackBgEOFvNtfJW1jVVl8SnISJV6PNEXI7BkjLxyrNGPA3O57mLO?= =?us-ascii?Q?tBwra/YLRjdJkBBaadtQikEpJ078qgXG3rqu0rjVqmv8bF90ws8A2Rt+1cKC?= =?us-ascii?Q?b8Z02XinOvQHm8oACCDxn9DDhlYdM/3uLtXapZ7D2z5CT82qIuySfYnAAPUF?= =?us-ascii?Q?nvSMzDbFWPHHlsdJJiNcKs0tG11ilLqSMVhfOG1EkgQdk+fGGFBW2oCMsUlK?= =?us-ascii?Q?oNLDUiRKBEric8sTr7J3OAD1RldH/Gtr4iIAxBGyEbYnrXbEEk9/zyvmRPDn?= =?us-ascii?Q?j+OROcbVFV+ntxIVdi7G3dbrFiqeZ8zLo+iNOo/pG3s+kCxmX+BDtyel6qrI?= =?us-ascii?Q?TyFaXc1T5Ldo0gdgeKC92OU4elLnac8Yu9Mhof/FSSSx56tZG3DwA+kHbk4u?= =?us-ascii?Q?UUHt7179rfUVzGCWy3qB9E93gJm03YS7uComP7NYaCa95t5O1Sf3EVQMJk9S?= =?us-ascii?Q?VbcQHsBJUqmsNX2OpNsNw96+BNXlP0dItbN96QTO0jqiCnwSdOg27EVnr+AF?= =?us-ascii?Q?m1Y98VtykKzJz7LKW/nb49yb76G4X7lz55caLhy2fBSTGZmelpRlUKaitYCz?= =?us-ascii?Q?IUaDCtAmUZBe1rbwwxGTXk73qZTibWH/2vPQlce3XR1dXODHiGNfuHXt2QRQ?= =?us-ascii?Q?uCY7BPQsCn2X/0rvBgDpqaGN2OX+OuIlUQCTKjSqAnxOZac0e6yUP5//r8+4?= =?us-ascii?Q?S9LNgywqGD8uzxKKeIOVfk/tgVo+rAM+vQ5W5EB5bgidkUchFOusIiz0tyFh?= =?us-ascii?Q?UIo8EPorPg/1Ju2KateFkc8roSIzU8qTXuXT45XZJN8gAARseUF+Nf5BuSe/?= =?us-ascii?Q?OuGUAvfKC87wb824TB+qmGKi9OgkyGmfcyPu3AYg2KfXYbZi/HUP5a+vhV+j?= =?us-ascii?Q?DNIBplF7DfPmoj05Czsg90UB/7LwjMjBWUq+G1no0T9GSIqcwG5BSHbzS02P?= =?us-ascii?Q?DuEAewHiMYbcq++lDQJ5tDrYxBOSQXSBN77LBs7/YEnHi/mNWdFIXO1wgNuI?= =?us-ascii?Q?Ngu315x+7Fs1Mq6qtLQwKMc5j2dKkhvPeu1Ru+ga6cj/0Uav8EtaA/WRSefH?= =?us-ascii?Q?WxLE44K+VCSdbal/UAfUpxjhOpKxdvDBw31Zzk+szdlkFTd6GXhbg6EL/fil?= =?us-ascii?Q?2QbNHyP7t0A47tjC9i0=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)(376014)(36860700013)(1800799024)(82310400026);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Jan 2026 20:23:18.4137 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 9b3ceb9d-9172-4ebd-d88d-08de52186c65 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: BL6PEPF0001AB4A.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR12MB8230 Content-Type: text/plain; charset="utf-8" Confidential computing guests require memory to be accepted before use. The unaccepted memory bitmap maintained by firmware does not track hotplugged memory ranges. Call arch_accept_memory() during the hot-add path to explicitly validate and transition the newly added memory to a private state, making it usable by the guest. Signed-off-by: Pratik R. Sampat --- mm/memory_hotplug.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/mm/memory_hotplug.c b/mm/memory_hotplug.c index a63ec679d861..8cfbf0541430 100644 --- a/mm/memory_hotplug.c +++ b/mm/memory_hotplug.c @@ -38,6 +38,7 @@ #include =20 #include +#include =20 #include "internal.h" #include "shuffle.h" @@ -1567,6 +1568,9 @@ int add_memory_resource(int nid, struct resource *res= , mhp_t mhp_flags) if (!strcmp(res->name, "System RAM")) firmware_map_add_hotplug(start, start + size, "System RAM"); =20 + if (IS_ENABLED(CONFIG_UNACCEPTED_MEMORY)) + arch_accept_memory(start, start + size); + /* device_online() will take the lock when calling online_pages() */ mem_hotplug_done(); =20 --=20 2.52.0 From nobody Sun Feb 8 05:42:21 2026 Received: from BN1PR04CU002.outbound.protection.outlook.com (mail-eastus2azon11010054.outbound.protection.outlook.com [52.101.56.54]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 165032B2D7 for ; Mon, 12 Jan 2026 20:23:34 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.56.54 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768249416; cv=fail; b=dUN89SkLeGWdqKecD4YmLYKriFb6js/g/D3A4OQOctYwwW044BQAtd/nVwczevWXCobec0UCFzS4kbyqjQyZbn+VRMivhUmxiYRg+JBRpHggUXR6S+n11EAvq8RmhYOZm9PJ1W5BoYzGjDPY54bxz9dduqPse/oXI1RAcmD8Z/U= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768249416; c=relaxed/simple; bh=uO8EOaPXoBEZBjMcW2U7GGZUMRKoXUhSgPHDcitHALw=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=LnoUiabudN2FcAQH/MYQ7WYrWHFQNlDzHdlHm3DDtmkXx6LzVH5OK3dWqbThIHZTjkNSQk6Cd38spUypyiJInh+NWCeISxatAsPSemxuuL3hLBG7FhM6rb9ADoHvrySWCRLgmxGDwcuhGolhJvrPixRD4XgJ/WGkEb96v6Nccis= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com; spf=fail smtp.mailfrom=amd.com; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b=PgvtUrdw; arc=fail smtp.client-ip=52.101.56.54 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=amd.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b="PgvtUrdw" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=HAkuYnXFbQa7CXHLM4CRkf0MsTwwWflgmrKe/k7Fq5iKOi93cb7NSq0bRyxhkODUxKecMrKG1pBpzeEitBrKu2F/E1oZ0cpw2patZMjQA4Vgd53qGLAekSqRletCGbxV6S+9h0hsxMz2ADbITOuIaK1asUbe+dWNG0yCtPmjB5TtTrp0MSC+h5KJOt24/nhCNDHpcsGrMHG2UAAbYqRx6DvXd4/lIow5hInPq12SJbx/Djc6R/ptKuxpgTKx5Zor8IhPL/YlJxP3+NMpRR8rZ9aYfha/HaKg+aqlD1C497ceHzFbt4bp6EgXI+c4RSfY1tY/8MCVaS1h3qrXJprRdg== 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=pGcNiGmFZQBlt9tcJv6pIfBGTcI9ybKafwo6gHidmHQ=; b=r2nviDjV33F8hZbnL8147mdAaz+GTAgo2S/TkJgvGQzwHe9KPB3/sJyWROYK0ns1NIH3igAqWOhYppzMVXMF/zXNev4KGWCoc+96NfJuJPrZ9ZRQ6/ZI9pRxbgo9T2EZoLD7bQMLpDNkT1xa4MkVIdriRpGURDHRbKLlPJnm5jFnqVu84ZT7pTPvlOaCCvu9fXHoWXFgvdqcOak/crW09qrfQnQ7HXPKzdgCP9g6akLsLCZncVw63HEhGayYgUEdIRq0DzOvjKruDq70cwdzYUnslAkbieaqZMgp35CP8ObDuo4yg640AfCPS6P3SThVmQZWaemq+Du9d6QvIL8aRg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=kvack.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=pGcNiGmFZQBlt9tcJv6pIfBGTcI9ybKafwo6gHidmHQ=; b=PgvtUrdwHvoppjJaVI0BWIsFvUjPzcUNrlRSi5YytbuypWDfmq9w5XnJfcJUnTRqtcfTnuX6UUuvNEXznS4WQ2f+Prmm0Ri20Lp4DiN0SoBpi6GW9zRQkTV1J+JXSIK50t4Wir/rh0bzzX0s9mi9EVK9OMgehpzoJm8qRlkdQqA= Received: from MN2PR06CA0023.namprd06.prod.outlook.com (2603:10b6:208:23d::28) by MW4PR12MB7335.namprd12.prod.outlook.com (2603:10b6:303:22b::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9499.7; Mon, 12 Jan 2026 20:23:29 +0000 Received: from BL6PEPF0001AB51.namprd04.prod.outlook.com (2603:10b6:208:23d:cafe::a9) by MN2PR06CA0023.outlook.office365.com (2603:10b6:208:23d::28) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9499.7 via Frontend Transport; Mon, 12 Jan 2026 20:23:16 +0000 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 (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 Received: from satlexmb07.amd.com (165.204.84.17) by BL6PEPF0001AB51.mail.protection.outlook.com (10.167.242.75) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9520.1 via Frontend Transport; Mon, 12 Jan 2026 20:23:29 +0000 Received: from ellora.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; Mon, 12 Jan 2026 14:23:28 -0600 From: "Pratik R. Sampat" To: , , , CC: , , , , , , , , , , , Subject: [PATCH v2 2/2] mm/memory_hotplug: Add support to unaccept memory after hot-remove Date: Mon, 12 Jan 2026 14:23:00 -0600 Message-ID: <20260112202300.43546-3-prsampat@amd.com> X-Mailer: git-send-email 2.52.0 In-Reply-To: <20260112202300.43546-1-prsampat@amd.com> References: <20260112202300.43546-1-prsampat@amd.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable 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: BL6PEPF0001AB51:EE_|MW4PR12MB7335:EE_ X-MS-Office365-Filtering-Correlation-Id: 0df17122-aa16-4908-5c39-08de52187324 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|82310400026|36860700013|7416014|376014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?XoAImIZiVyJWBUARIxQ52LngzoKK62KwJ4xccsG2cUBXdYRqAArjnIVEU2eQ?= =?us-ascii?Q?hjD/zDYmRYDhM3KK4ZthJ6hVCNff7Y7HJQ5KZHLltwHO81EEK4vAMEO70Idh?= =?us-ascii?Q?X+RkClsU4nPlvbFXSjeKmK5p+wr5+2JjGKs7yg8ca5vLK7/znD/c4Li3uCGe?= =?us-ascii?Q?ZkN7Yl3TwRu+8RRCojRjR7uR4fDkuPj2DK0wGWN2PFOTWfFczDvEaZazk5yf?= =?us-ascii?Q?aQO6uneRukREadPMym3JYoZDP3u1Nub4uxFAmAwJ4vsWYReIUPq0M1Okse2r?= =?us-ascii?Q?aAtCaIYcXGBC2kKwXNiAtd+sRiWpO8piNYaDpD4RvyRQKX3If0GuTh3OvSod?= =?us-ascii?Q?+YiztD+I6vtF6hAyK3klFgrC97HS1m/J87ql+wkdQjLaGMwYFqXhbxXpTy1v?= =?us-ascii?Q?n77jDwpH7YXrt+489knyKcj8pii1OgBqxZlSFRBS68WpfsHBfDMjUU1OCKJb?= =?us-ascii?Q?u/h8goSU+Dn7WyW3eDtbqNG3nlUBFeggbgD9q/qeMZtqofKky+c4hm7L8JUs?= =?us-ascii?Q?Dj0nF7F1vojZbThH/OI5TGmKfTHzJ7C++52vt64Dybpodf8OGv07mZJ0tRF6?= =?us-ascii?Q?rrK9udvbkya8ooIHbdCxcwEUbfNCHDzlS57eNMySFwkn71tuDkyLhimVBB4l?= =?us-ascii?Q?7Pl2vWzkbo/grCiBm6eiMVpKo+dgi/S2fsdzNsVGjacPv6a47Ox0OuPbp+I+?= =?us-ascii?Q?8RDUF/vkdSbUKnP5wzPKzznTgHu8uphIl4SvyJ7FF3abqtN4qRx12ToK5Ven?= =?us-ascii?Q?uIxM3Y7kEaxRIuwvcwqmEY7P/qGWnRRUxKWNqqFhgmIc8zI+G/1fZW+OL/eC?= =?us-ascii?Q?MhUZmdNdrbmcYGKUP9FyAbBT3z/m24aojWdzx6Jx3hFeLXsUnb/XCrQy9GQh?= =?us-ascii?Q?+KF+A2TMqXBSA9HOWXfYywFw9Pc3FHv0PW1EfIwtbY26A21j7wwJkQCjxQPm?= =?us-ascii?Q?o4D+P/aF4V2kfjOrQaiLIvEcYDyP8uW4InTQvD99S2wpwa0ijf7Eh44TN/H6?= =?us-ascii?Q?U8vQDsjLzJ6joA3ZREwGuogjyteYRYvXv5P52OMMewd+0jZvk4xWmqtHhQmD?= =?us-ascii?Q?+STnZzfTmzU07mop8qRjup+tQWztA4s22HgvLMX8LUBQUIiIRxZfyVjNBp+L?= =?us-ascii?Q?lPyC1YIXZe4IDrY0B9XCxouKxCMGCa3AxzaZ4gpTx3Mm8VdiXbK/5tqwXXUx?= =?us-ascii?Q?m611Yn/0BMZ7XmjwwZ4RJZm8HFoRhPLcGH8zC4nnybuPlXLOCFl8Xcq1sFBs?= =?us-ascii?Q?WA9L6UAvw9aITOZqZtFFdY8c2h85Ekeja9AaEYvpovmoaewUbXPZvdaCqT/R?= =?us-ascii?Q?Avs9te29uG8nJ1nyATYQFsVvaP+d3b7TtDWZxNyxkCCRg3OOEhC+64B470BB?= =?us-ascii?Q?/nqAtGBK3dPs0WQgyIu6/GpBc2CKnUfx4UqVU8XigyGr8Ru6U+Ue6Fnp9eKs?= =?us-ascii?Q?yowrbRhlpl/s36g4sTA3ozSIQdnzLQmB/pchOLbLQ5PTy4tNL5xG1aowRWjb?= =?us-ascii?Q?mWJZvm+knbABnOuik/jTARYgxwUBHe0wycM55bi5xHrknQ5b5zYet460t+Pr?= =?us-ascii?Q?pQeDSAku+uJVyi/Mqa4=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)(1800799024)(82310400026)(36860700013)(7416014)(376014);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Jan 2026 20:23:29.7204 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 0df17122-aa16-4908-5c39-08de52187324 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: BL6PEPF0001AB51.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW4PR12MB7335 Content-Type: text/plain; charset="utf-8" Transition memory to the shared state during a hot-remove operation so that it can be re-used by the hypervisor. This also applies when memory is intended to be hotplugged back in later, as those pages will need to be re-accepted after crossing the trust boundary. Signed-off-by: Pratik R. Sampat --- arch/x86/coco/sev/core.c | 13 +++++++++++++ arch/x86/include/asm/sev.h | 2 ++ arch/x86/include/asm/unaccepted_memory.h | 9 +++++++++ mm/memory_hotplug.c | 3 +++ 4 files changed, 27 insertions(+) diff --git a/arch/x86/coco/sev/core.c b/arch/x86/coco/sev/core.c index 9ae3b11754e6..63d8f44b76eb 100644 --- a/arch/x86/coco/sev/core.c +++ b/arch/x86/coco/sev/core.c @@ -703,6 +703,19 @@ void snp_accept_memory(phys_addr_t start, phys_addr_t = end) set_pages_state(vaddr, npages, SNP_PAGE_STATE_PRIVATE); } =20 +void snp_unaccept_memory(phys_addr_t start, phys_addr_t end) +{ + unsigned long vaddr, npages; + + if (!cc_platform_has(CC_ATTR_GUEST_SEV_SNP)) + return; + + vaddr =3D (unsigned long)__va(start); + npages =3D (end - start) >> PAGE_SHIFT; + + set_pages_state(vaddr, npages, SNP_PAGE_STATE_SHARED); +} + static int vmgexit_ap_control(u64 event, struct sev_es_save_area *vmsa, u3= 2 apic_id) { bool create =3D event !=3D SVM_VMGEXIT_AP_DESTROY; diff --git a/arch/x86/include/asm/sev.h b/arch/x86/include/asm/sev.h index 0e6c0940100f..3327de663793 100644 --- a/arch/x86/include/asm/sev.h +++ b/arch/x86/include/asm/sev.h @@ -514,6 +514,7 @@ bool snp_init(struct boot_params *bp); void snp_dmi_setup(void); int snp_issue_svsm_attest_req(u64 call_id, struct svsm_call *call, struct = svsm_attest_call *input); void snp_accept_memory(phys_addr_t start, phys_addr_t end); +void snp_unaccept_memory(phys_addr_t start, phys_addr_t end); u64 snp_get_unsupported_features(u64 status); u64 sev_get_status(void); void sev_show_status(void); @@ -623,6 +624,7 @@ static inline int snp_issue_svsm_attest_req(u64 call_id= , struct svsm_call *call, return -ENOTTY; } static inline void snp_accept_memory(phys_addr_t start, phys_addr_t end) {= } +static inline void snp_unaccept_memory(phys_addr_t start, phys_addr_t end)= { } static inline u64 snp_get_unsupported_features(u64 status) { return 0; } static inline u64 sev_get_status(void) { return 0; } static inline void sev_show_status(void) { } diff --git a/arch/x86/include/asm/unaccepted_memory.h b/arch/x86/include/as= m/unaccepted_memory.h index f5937e9866ac..8715be843e65 100644 --- a/arch/x86/include/asm/unaccepted_memory.h +++ b/arch/x86/include/asm/unaccepted_memory.h @@ -18,6 +18,15 @@ static inline void arch_accept_memory(phys_addr_t start,= phys_addr_t end) } } =20 +static inline void arch_unaccept_memory(phys_addr_t start, phys_addr_t end) +{ + if (cc_platform_has(CC_ATTR_GUEST_SEV_SNP)) { + snp_unaccept_memory(start, end); + } else { + panic("Cannot unaccept memory: unknown platform\n"); + } +} + static inline struct efi_unaccepted_memory *efi_get_unaccepted_table(void) { if (efi.unaccepted =3D=3D EFI_INVALID_TABLE_ADDR) diff --git a/mm/memory_hotplug.c b/mm/memory_hotplug.c index 8cfbf0541430..718f729cf687 100644 --- a/mm/memory_hotplug.c +++ b/mm/memory_hotplug.c @@ -2242,6 +2242,9 @@ static int try_remove_memory(u64 start, u64 size) =20 mem_hotplug_begin(); =20 + if (IS_ENABLED(CONFIG_UNACCEPTED_MEMORY)) + arch_unaccept_memory(start, start + size); + rc =3D memory_blocks_have_altmaps(start, size); if (rc < 0) { mem_hotplug_done(); --=20 2.52.0