From patchwork Wed Jan 22 01:00:04 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ashish Kalra X-Patchwork-Id: 13946731 Received: from NAM02-SN1-obe.outbound.protection.outlook.com (mail-sn1nam02on2064.outbound.protection.outlook.com [40.107.96.64]) (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 4FB2817BA2; Wed, 22 Jan 2025 01:00:20 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.96.64 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1737507622; cv=fail; b=PGafJWxVIYbmF4gNQsvv89RdR1RZH+7fFjjE306oNayGGTJT1G9j2SCgpPKK8c0jLpnZR4yVtyA3qasou6x+sJE1e7VJQ7rvCWqR/MDmcGdDp+lD5ICJprp23qEA/seaZ+JFvibvN6eozF7JwiA/c/6OrIlq9QelPc7BWqpAYHA= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1737507622; c=relaxed/simple; bh=N7YRDrdKyc5kObh91/QO93XFYEZWrAbuBkg/INmgvxg=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=f67hVScIvSKE3TmvZR8ibL8UVGW/IKt1loYmlum1AMHmM2QX2QAdDVx5GQtkRPRjV+nt+nKBdwW8C7MJBa8GUlPOMDXFX6nmGEO0NIzLXipUO7o0wu36xTPTJOWM3fGDZ2h3Qf0jvfDN6pFj1nTt+lJ54JB+tzvQSmimtjw5IOc= 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=KuDvedzl; arc=fail smtp.client-ip=40.107.96.64 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="KuDvedzl" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Oe8c7KDAmyfwj1wtXMw/EGoM645Ol/Z5cpdQfTy3M9nyFV3nyL4J3C00kkBblydne9OpDDUliWqlhiXlEolg4EVsWN0SR3K6HjgNihG5bmTeB/yxx1fdbj3OelMjQfag9tPlQ8690rZiK4cLTxeCWpRutK/sh4ETr6X9BL8hde3iU1OugPjQHsIEqKhWZbRPimt5OjjKC/zooz9hpXyihhRGHhBpa65hiIB2sPCDvir94KEGbuOi7n4ws6UVxKYRGMJU7WXs11ROtMqWnRbQ2RM7FZhukNEW78ietJ9yCxN+/7sFRaUWP0fvJFkxAyu88FW4ucYf0jVi1bGEF3PPDQ== 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=/jhh2VcBAzSni/KkjX3/gDbqaadpWAxhAuyZq3Ha/tg=; b=v1yCLfHQa7UMZnM+afOWepp65dao4JqHxoUhW7iuSkQTQ73hgWLaRqus5oLFcrMYd0yZjKTH2ls1arIq7L/BYfQ5WskDq7gKJ/GKVVxmMbPhIklr6bqeY844b45EDhZfZ8vBJh8uz8Pf2AHizr24N51gKqu7+z/TClY3fbhrNU5wCYW6kZxXD1EI4uRlw/BnO3i1CeeMw6fXtySrHpJ+JnzVY6teXePI1KM1e2nTaLD+LBGjbrgfRnMR1UmwVXWacfsAIut/DJ55FM+ULSpogAvQUZr0YK6vpVhgFLhPcg7eRUsVfhWpBwgh9aUveKgvwph3YMcEMxlBCiOMJNGmPg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=google.com 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=/jhh2VcBAzSni/KkjX3/gDbqaadpWAxhAuyZq3Ha/tg=; b=KuDvedzl23rE6jVRIjC3mfBqZzO2j45OmSSFvH1d9NJhaUPjSLMD0xXzMwIMMTvjFo6Ml4DfYMvwOecMWaXphoFdGPX27q9rn4HYIYZwsCp77Xtpn3hf6+h0L00B0yeg4H9sumcZq3of7xXNemcdROLcBllOkyDaOr94W9TPgv8= Received: from BYAPR21CA0029.namprd21.prod.outlook.com (2603:10b6:a03:114::39) by SA0PR12MB4352.namprd12.prod.outlook.com (2603:10b6:806:9c::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8377.17; Wed, 22 Jan 2025 01:00:16 +0000 Received: from SJ5PEPF000001F1.namprd05.prod.outlook.com (2603:10b6:a03:114:cafe::f5) by BYAPR21CA0029.outlook.office365.com (2603:10b6:a03:114::39) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8398.8 via Frontend Transport; Wed, 22 Jan 2025 01:00: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=SATLEXMB04.amd.com; pr=C Received: from SATLEXMB04.amd.com (165.204.84.17) by SJ5PEPF000001F1.mail.protection.outlook.com (10.167.242.69) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.8377.8 via Frontend Transport; Wed, 22 Jan 2025 01:00:16 +0000 Received: from ethanolx7e2ehost.amd.com (10.180.168.240) 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; Tue, 21 Jan 2025 19:00:15 -0600 From: Ashish Kalra To: , , , , , , , , , , , , , , , CC: , , , , , , , Subject: [PATCH 1/4] iommu/amd: Check SNP support before enabling IOMMU Date: Wed, 22 Jan 2025 01:00:04 +0000 Message-ID: <0b74c3fce90ea464621c0be1dbf681bf46f1aadd.1737505394.git.ashish.kalra@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: References: Precedence: bulk X-Mailing-List: linux-crypto@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-ClientProxiedBy: SATLEXMB04.amd.com (10.181.40.145) To SATLEXMB04.amd.com (10.181.40.145) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SJ5PEPF000001F1:EE_|SA0PR12MB4352:EE_ X-MS-Office365-Filtering-Correlation-Id: d6a81ead-eb34-4d7a-5358-08dd3a80228a X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|36860700013|376014|82310400026|7416014|1800799024|921020; X-Microsoft-Antispam-Message-Info: f3lfEEmoYgp/BPSFSHFLWDbjKt61xBaD3Zo3w8SOa93esPPu3x8kEHsns+eF4o9Iy2MN9s+J102XKrVRtACKDfdukxkTeosu2+69Sab0nrSdihjM1WXYoPtX5DLEmiEL+oYgTzJji+BDfx4Jit0+BE059bUSz1JeY8TjP/vDj2XEvx442QyR9SKluTpAze4G0d4qd2jVRo46FgVB7xyKu2Z9ympZXHnbG/KL9JmI1hLBByRKw7UZNyuTHDaR3FtUMd3p9epA7v3SaJ3nF5/ZE1NCS9N4zMMu3RTF1Vt5FC332JJvWz1TY6grCBAel1oSVHnPKj2abWA8XBS8E0a5ERHjL3TwZNnBbsCJdMSWs7ohYRcC5G6oTaSIvta4BMYMPqw9uYlQXxlSUKW3eMITzXXsLm69zyY+xqKLwmMEl3nAYJHVGTtUnUKrjIZuC6sXQeRhiUk4x8igwAFzg4CFsJ2jOHDGXvV7NSuVSWzfVit4d87lnIUQlGyCZ8XU/QZ/LvMdypWrEN8oATbex12s3oX8H3ZW8xD483A7/kra0rlEXPuFD7LTYB4+Mt3AeA/W9UMt1q93TIi9KKR9wyz85aiFH7rdECnk36dBShqrG83zunrTw0Yx5X0uVXo57wcmblsXb4mCE56rbSQUgfutJk8zRM1maShdTFjE4TOjwTq8SAvvxa5K4ZS/BL1+zLE0Iwzq/JIkLiqWAyecrN+P8FEwXJubH3JUJp3q0tVkIzCk5PXte8gvWitnEHqonCTCB7YRkpZ8GBpX6RLx65X8mgLN0Qlv86r+cGuWSeJ+vaVXjT5UwIl79IkAYugftzP1FdS2BsF4wWTJx3fkUc3e8v73Z5V1FtCv3Ysya+TTT+MnzrRyII15o9o/jQtl6OkZ3r+ViDwoCSV9Tpe0LYqGNj1DLMM9vcJr1gfg1PlpJPIGNEc1qAEh73MqaNsNcFy5H6B9jjjDzZKpQj4kdbyZY+njQ7d2QqsXovbSA4Yzyf+cFPx9pWQQhFhAwoKxppagJ3IxA15J2+cDNjcut1AA9BO+z9T1Y1nFz/N9zGZEW8LybMM47VDEbkH77S3OMNxE/cFx1pf3GKqkPtrM1gqHK2XrMhJpSfNLAGCuD0F9FqiXiRqg+vTfJ0+mX62aKzwg/Kq4xS1+PD1Ga6zlGUDc5hK7DmitL0zNG7llaDFoF+Rodio0WpObtM/362KOvczDyCDCmc8dG5WhxYO8zPzU5KGijm/QObMnUCe8JTCwONf5srzvRgu2UU9WyYSxbIWSBmATW2R0/IUakmbwIjbYo1a2bnoBKvDP9Sl953k0Q6UdjfGxMqUGsFML7rX/lGGis+FsPhBL/RkTEC5bu9v9r05R1tYyzALJbeiPdvCbKGW6Wvw+NDSImDTy8qtDN58Wv7+MIWlta/QvTig7bZSccHzcfOIJ9Iz9UW622zSLTGbDIFuOxQnn7tV8oK3cDweSEa3I5iv1wdlN/QsAOwO6jayozh2nTo1dl7cZCbfJesQ= 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)(36860700013)(376014)(82310400026)(7416014)(1800799024)(921020);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Jan 2025 01:00:16.4631 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: d6a81ead-eb34-4d7a-5358-08dd3a80228a 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: SJ5PEPF000001F1.namprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA0PR12MB4352 From: Vasant Hegde iommu_snp_enable() checks for IOMMU feature support and page table compatibility. Ideally this check should be done before enabling IOMMUs. Currently its done after enabling IOMMUs. Also its causes issue if kvm_amd is builtin. Hence move SNP enable check before enabling IOMMUs. Fixes: 04d65a9dbb33 ("iommu/amd: Don't rely on external callers to enable IOMMU SNP support") Cc: Ashish Kalra Signed-off-by: Vasant Hegde --- drivers/iommu/amd/init.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/iommu/amd/init.c b/drivers/iommu/amd/init.c index c5cd92edada0..419a0bc8eeea 100644 --- a/drivers/iommu/amd/init.c +++ b/drivers/iommu/amd/init.c @@ -3256,13 +3256,14 @@ static int __init state_next(void) } break; case IOMMU_ACPI_FINISHED: + /* SNP enable has to be called after early_amd_iommu_init() */ + iommu_snp_enable(); early_enable_iommus(); x86_platform.iommu_shutdown = disable_iommus; init_state = IOMMU_ENABLED; break; case IOMMU_ENABLED: register_syscore_ops(&amd_iommu_syscore_ops); - iommu_snp_enable(); ret = amd_iommu_init_pci(); init_state = ret ? IOMMU_INIT_ERROR : IOMMU_PCI_INIT; break; From patchwork Wed Jan 22 01:00:22 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ashish Kalra X-Patchwork-Id: 13946732 Received: from NAM11-DM6-obe.outbound.protection.outlook.com (mail-dm6nam11on2067.outbound.protection.outlook.com [40.107.223.67]) (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 BA1042837A; Wed, 22 Jan 2025 01:00:43 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.223.67 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1737507645; cv=fail; b=F1T7PqnFlaJsKwmHNYLlr7PK5r3P0dbUZu15OGciKYk+NYC9V3cvYKLyLtamicKfktz0TIbLabM+aPo3FSzAIQY5rJb1HQQaTLsYo9jMTjoc64kDszKVNsq2aj4lc7mQOdyBdmD/IlAPkRwcwVgng/DHNBscUqy9uV1uTqhPlLo= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1737507645; c=relaxed/simple; bh=uXsFTuES+8ingRjtHVEoJ3pUaV+TENZ1V8HMOODdOt8=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=t9CeSVOuYab2YatdKitszswvB9JqLabJ6g/wAIyu0CMXgetRp08GWLMCzXPDOU0t8n2SenSpdb8w10S6w6zTCVpsaV6/4octFn4hN2fyFhhyycsYohmu211Q0jH67Qe2j1Dvr5lm9edmX/kE/eOuUn3dc650hiB0YWiMnBXqzSE= 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=tPUS4XPm; arc=fail smtp.client-ip=40.107.223.67 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="tPUS4XPm" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=i+For89ixYXGXAHwvePcVVwSlyIwnSO7Z/rd7dgAI8fgsjUMfKLQXCNDK7C3RWCktgaB1PRzprJLpgoLAxc728aoCh9VDIDUsU5amWHpzaDw3qyzAtw3/QxfclSMmdvojth4tLI82fFDKEeN/ejLMrpVrv80NrZa+dU0yF9Rap7IevWNW9Pn4bxahc4geqVg763mKb986bA//Y03pxz808KgxSv9VzZPPq9Fb5fshlkOAt0LRIu6jAbz/3/w6/lroWmM2CyQJVRDsLUMSId9F7jQ0Zat7L/GjS0cnSHzn1LrL9DyeFcPcwjBIsgL8zeealLItj/wB9nxEd6QNiRJxw== 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=ffeobm4egWo4WTBHI/ac6X+oNEaZXhObhnrlY3MAKtk=; b=Ir7lHZ0hVVJoz7apQ8sUzvmqEqWgvmecV30jLvv2MlkKCsXB15knDzKTM+qQbJFkARSQfBGv6BlAOsjY2QV0QHhBwuR6Z8vuHnT/qne6mw0RGAqm9kwCjHW6l+deU7WC+Y0AlCu+x/UdRFN+lhcanhek+OM2Fi5TOFw9tRCdBMA55v4JUgN84z/ur8umVrAd7lIxJfwqnhLqFjZW7yjqExw6+Vdi7qVDxVfNZ90NhtE0j2p3I1y5MdB6UiOOcYKDwXd9/DJrh8E6sh9aRFhqhQB/4Lhzcep1jERUyNFmrCBieky4ElX9y88jrUS/qC518BDpBMjF1pT4oLXYFztdSg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=google.com 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=ffeobm4egWo4WTBHI/ac6X+oNEaZXhObhnrlY3MAKtk=; b=tPUS4XPmCOVC36zBOtbqlkaacqqruyw1kHuN8OmVv+Yc3MdUS+JVCBNQXQ9F2iYx1Y5bpBgHHxDzs0OWLLW0s2ziZ8W2AecTihbzea5DbiFYskF9bms2nYfHx+ODfnP/b1JmbPHIeJlRbx3J1+Vg8MrONj/uLXDl0v6GvAZQro8= Received: from SJ0PR05CA0099.namprd05.prod.outlook.com (2603:10b6:a03:334::14) by DM6PR12MB4042.namprd12.prod.outlook.com (2603:10b6:5:215::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8356.22; Wed, 22 Jan 2025 01:00:35 +0000 Received: from SJ5PEPF000001F2.namprd05.prod.outlook.com (2603:10b6:a03:334:cafe::1a) by SJ0PR05CA0099.outlook.office365.com (2603:10b6:a03:334::14) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8377.13 via Frontend Transport; Wed, 22 Jan 2025 01:00:35 +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=SATLEXMB04.amd.com; pr=C Received: from SATLEXMB04.amd.com (165.204.84.17) by SJ5PEPF000001F2.mail.protection.outlook.com (10.167.242.70) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.8377.8 via Frontend Transport; Wed, 22 Jan 2025 01:00:35 +0000 Received: from ethanolx7e2ehost.amd.com (10.180.168.240) 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; Tue, 21 Jan 2025 19:00:33 -0600 From: Ashish Kalra To: , , , , , , , , , , , , , , , CC: , , , , , , , Subject: [PATCH 2/4] crypto: ccp: Add external API interface for PSP module initialization Date: Wed, 22 Jan 2025 01:00:22 +0000 Message-ID: <2a2c2b55c2b137b777ef5beab8e2a814f0c268a7.1737505394.git.ashish.kalra@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: References: Precedence: bulk X-Mailing-List: linux-crypto@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-ClientProxiedBy: SATLEXMB04.amd.com (10.181.40.145) To SATLEXMB04.amd.com (10.181.40.145) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SJ5PEPF000001F2:EE_|DM6PR12MB4042:EE_ X-MS-Office365-Filtering-Correlation-Id: 784859f2-81b1-4eac-a3f5-08dd3a802dd3 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|36860700013|82310400026|1800799024|7416014|376014|7053199007|921020; X-Microsoft-Antispam-Message-Info: c8t+iIh3ruOG1+u4rQiYUvps8GspKg24fEHwuCqm1hYcIdFaGS7T4PuKbxi1ktwDRl++v3mg3UKYpRIP+n06qH59ZYUM19M6p1qODYqtCE7aTCKDjyqMSlRGn8kD9rweVpZifo1t/uWbdSt6v7J32bgGcDoW+F1vYAe6oWatGcuX5aPZ2rRh9xBHlN6Q+5MCDZqqVZTp9fgaKvJzIVVX8BGN4ZcXEDJyep66whZPodXc8DRYAjEkTym2TJBbvWJaCqONXFY4OopDfcK0aXrlzVRmV5vjB7ON+Br42tvAQHCI/wQHImny/iMxNpRTXWNR4NDJAfryvaFnEC6eXMsyh4T1/JPwtiTv1F2gZ2cy/Yk+sr+KDTNafALNnZ/e2/e6o/KHK23bmax6EgxCIuJ7YdCBBe6pL0Dl+q611fusg31wQwr1FKowgFwzdtvwkWh7hgsH6yjEbKi2m25lSqiVE4q1LY10xG12IHxf3UET0Rz9OSsgLLkN6P8mMiUOCyrZC0bg+OYrnM96V3onNancCHB8Zno/7b8M7R6tb0tEdkB+mRBEp9tWo0Z8bgQb6/E8D0kN7F8SWC+Y3+253SkJ19lvf3kiIPxmr5TbfLyhqiWTS6GueFfBvA/NvXcmBx+ILdT1yyTQEUXA4SA0x4M5FV6dhEs1uJEtmctBJt7PJ3dDZxvQs211cr6yjchFp/Kj751eeqOlqRafxWuU7rJUJqsxAvB+bdJSy6cbqbP7ZIeSye7kZvqnr/KC18kTfaEWfIkCdhkubRpVo0+K37DIGtgBynVpeyrKe/+JNyWOhEGbIUtrZmKUEriPh8o2MbAi6bcoPuBTH5NKCEaeGCo6+qfenpUysGJ8QVwFIOslscgnYGvFBU/2+x8stHaWmAPwiR1lnWOxXX4lKCLl5P9D0frI5JtKAmEgqVyPcmwl/EzfsbRXP36XAYgcs1ReQg04jGs8PYVo9h1IkBLDDHtXkbBc917/uhR59P5Ajgbqjwa3lWuaNx/jjxw4yBV/KoFzCtLyeZyg9m82qI2txe0l4CMQQzF+qpuu4zyowDVUQS8uGW5gyDRfcI/oQPr5TmXz2/AClIBPtoC4qffDAXiEqfkK5aEP/BzkEWcyZ4E1iacq/eqUEFh7anGa/0iRgwpoLif4JSjDWocGtX6bVgp8cWokjW2dxjGlDxPzglGJgvNyuAoqZIRPjNGPNIKoRpnT2mlOnApwq8q0XmIZ1R1oGMYhP8jtSBcxiVBk0cWvVdTd2gkfe29dqziZd94MAmrLffqaYJ2I8MAvuX855mSzJfKEydYYaDYwz0ZjFOWT7qt8GTTyOFJwK3HYASFqlCwCmUyUMgWTEdY2ECfBGE3LJJJTqCyJID15Kl5O0xurpMA4oyybXAt4tastVJJLeP0fGaYQMoF1lhki6cn/ikCiKXiBklXszgKWpJuESEHiR77HMJdUIADh2cdM9IW6vf28D+6tXiW3kQlI2EILYPfQHEis1o/hJLqErT+DxUO8X1I= 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)(36860700013)(82310400026)(1800799024)(7416014)(376014)(7053199007)(921020);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Jan 2025 01:00:35.3829 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 784859f2-81b1-4eac-a3f5-08dd3a802dd3 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: SJ5PEPF000001F2.namprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR12MB4042 From: Sean Christopherson Add a new external API interface for PSP module initialization which allows PSP SEV driver to be initialized explicitly before proceeding with SEV/SNP initialization with KVM if KVM is built-in as the dependency between modules is not supported/handled by the initcall infrastructure and the dependent PSP module is not implicitly loaded before KVM module if KVM module is built-in. Co-developed-by: Ashish Kalra Signed-off-by: Ashish Kalra Signed-off-by: Sean Christopherson --- drivers/crypto/ccp/sp-dev.c | 12 ++++++++++++ drivers/crypto/ccp/sp-dev.h | 1 + include/linux/psp-sev.h | 11 +++++++++++ 3 files changed, 24 insertions(+) diff --git a/drivers/crypto/ccp/sp-dev.c b/drivers/crypto/ccp/sp-dev.c index 7eb3e4668286..a0cdc03984cb 100644 --- a/drivers/crypto/ccp/sp-dev.c +++ b/drivers/crypto/ccp/sp-dev.c @@ -253,8 +253,12 @@ struct sp_device *sp_get_psp_master_device(void) static int __init sp_mod_init(void) { #ifdef CONFIG_X86 + static bool initialized; int ret; + if (initialized) + return 0; + ret = sp_pci_init(); if (ret) return ret; @@ -263,6 +267,7 @@ static int __init sp_mod_init(void) psp_pci_init(); #endif + initialized = true; return 0; #endif @@ -279,6 +284,13 @@ static int __init sp_mod_init(void) return -ENODEV; } +#if IS_BUILTIN(CONFIG_KVM_AMD) && IS_ENABLED(CONFIG_KVM_AMD_SEV) +int __init sev_module_init(void) +{ + return sp_mod_init(); +} +#endif + static void __exit sp_mod_exit(void) { #ifdef CONFIG_X86 diff --git a/drivers/crypto/ccp/sp-dev.h b/drivers/crypto/ccp/sp-dev.h index 6f9d7063257d..3f5f7491bec1 100644 --- a/drivers/crypto/ccp/sp-dev.h +++ b/drivers/crypto/ccp/sp-dev.h @@ -148,6 +148,7 @@ int sp_request_psp_irq(struct sp_device *sp, irq_handler_t handler, const char *name, void *data); void sp_free_psp_irq(struct sp_device *sp, void *data); struct sp_device *sp_get_psp_master_device(void); +int __init sev_module_init(void); #ifdef CONFIG_CRYPTO_DEV_SP_CCP diff --git a/include/linux/psp-sev.h b/include/linux/psp-sev.h index 903ddfea8585..1cf197fca93d 100644 --- a/include/linux/psp-sev.h +++ b/include/linux/psp-sev.h @@ -814,6 +814,15 @@ struct sev_data_snp_commit { #ifdef CONFIG_CRYPTO_DEV_SP_PSP +/** + * sev_module_init - perform PSP module initialization + * + * Returns: + * 0 if the PSP module is successfully initialized + * -%ENODEV if the PSP module initialization fails + */ +int __init sev_module_init(void); + /** * sev_platform_init - perform SEV INIT command * @@ -948,6 +957,8 @@ void snp_free_firmware_page(void *addr); #else /* !CONFIG_CRYPTO_DEV_SP_PSP */ +static inline int __init sev_module_init(void) { return -ENODEV } + static inline int sev_platform_status(struct sev_user_data_status *status, int *error) { return -ENODEV; } From patchwork Wed Jan 22 01:00:40 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ashish Kalra X-Patchwork-Id: 13946733 Received: from NAM02-DM3-obe.outbound.protection.outlook.com (mail-dm3nam02on2041.outbound.protection.outlook.com [40.107.95.41]) (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 6130114A85; Wed, 22 Jan 2025 01:00:55 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.95.41 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1737507657; cv=fail; b=FmbX49YCighjtaY0SoxnFEYYRTt0n2NMuKUA9Q8mIrWuTMGraoqAyJ5cp7rOvmb20m9sOYLEl/pzEwyK0wD0Rf2GLOfkqTpFcwpV5EwNgqIk9fIcyYyOU+AfvbGi5BJw6iGplQgGOxEBZ+jxiOM0QI4jUK3TTcVT6cEA41SjkFg= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1737507657; c=relaxed/simple; bh=aXJoMg4LVxWH9beJKqOKPOelyJzXBk/BDGdCJBJoWDo=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=GkKHdPtZhmzC4xvfV+YGbBblZ8yejrs+oDkhWLoVp6nO6NQeuqoEhe1u8Er52PBAko1ZL4M+4eDXZuGO2BkgpJi4GEN/lpcXpZqmvdWHXUnODZFMUpXjotdEZL35hTmo3KOF/WkiffWKIdTfTZiA05HXaQSb1GbFsLZmk100/V0= 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=PrAU81Ql; arc=fail smtp.client-ip=40.107.95.41 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="PrAU81Ql" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=w++HAPGBmJrmT9yfJPxugbwv8iKRPh4iZ5RL/MRqmIU7WtR3OkYJv0Xn3B2SXfxQE/lU7z9uYS0QfybIj3MsMG5JD6W70PGMHF57qN9Jv30Nm0aqb/YMs1Izf9wY4E9P73G6t7N8Auv4vR2afyvxiLJqrEJUDyL5j19EVVe3ySQlT0uj4IRms2GxWf1+ZVsGlo7kHoTKGxqFhmupaszbcSCwaTbe7dOgH11T+30cwSbbyR1yuFT8qspFrFb//2OnsHoTuJZOSsY/iarr+IWe4qKEjUWy5Vot56ljCc4RFrBpFcraM+TjuoPx5cP6wr6y2czcVXp87x23zdNBHqRO9A== 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=Y0wzV9knh6WW7OSQtpVfYV6EQlap7kGjlSsXCKFxXH8=; b=IepSUIYgDxPqBVzBha7nVIT/oaK/y6IaHq/eUDeRZr//bqjs83p40bjGzVSA5hTTh+RJN1o8oPbcZ9YxW73dcbcyUVPdzlzDt5eWE2FXHiHXGjqwQDZAnhv9u/67PXD0UmBQ09H511ufnTU1Xf36PW+ROgnso2ey5vK4kDi5nTfPNxjnmgxU9sqEIn3BEefrnYR06Cyl13bmnjbl0Th+AqF2ZZ18ij/wsWAJDyXTTUseMgOQmOc5WExcytYYZviFwsBv5XVvm95BGlAOp/1VhP4qIq9jIJFXxc8eyuvEfbAb0pNCcyl/SwZOLwCE5aXk2ENq3FgE96fsXvKPH1pjdw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=google.com 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=Y0wzV9knh6WW7OSQtpVfYV6EQlap7kGjlSsXCKFxXH8=; b=PrAU81QlKHYA7gWIgZzbMPHzeiiUeGcie/XrozA/K0wEA+5J5oed7o5StJkvC5nRSmE9NH0dFVPywl1bdeIyh9zxMLgcSf0PdjQhy7eacggsDTLSrdjvtnS27+rl0FVgbvA3U+Sq7OlyYkZpe0kjEIeiTmJdXKNnBTkJa3Io5qQ= Received: from SJ0PR13CA0126.namprd13.prod.outlook.com (2603:10b6:a03:2c6::11) by PH0PR12MB8099.namprd12.prod.outlook.com (2603:10b6:510:29d::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8356.22; Wed, 22 Jan 2025 01:00:52 +0000 Received: from SJ5PEPF000001F3.namprd05.prod.outlook.com (2603:10b6:a03:2c6:cafe::da) by SJ0PR13CA0126.outlook.office365.com (2603:10b6:a03:2c6::11) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8377.12 via Frontend Transport; Wed, 22 Jan 2025 01:00:52 +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=SATLEXMB04.amd.com; pr=C Received: from SATLEXMB04.amd.com (165.204.84.17) by SJ5PEPF000001F3.mail.protection.outlook.com (10.167.242.71) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.8377.8 via Frontend Transport; Wed, 22 Jan 2025 01:00:52 +0000 Received: from ethanolx7e2ehost.amd.com (10.180.168.240) 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; Tue, 21 Jan 2025 19:00:50 -0600 From: Ashish Kalra To: , , , , , , , , , , , , , , , CC: , , , , , , , Subject: [PATCH 3/4] KVM: SVM: Ensure PSP module initialized before built-in KVM module Date: Wed, 22 Jan 2025 01:00:40 +0000 Message-ID: <9aeb32dc2b7080c534e7894d35ee8ad88dcc2c6e.1737505394.git.ashish.kalra@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: References: Precedence: bulk X-Mailing-List: linux-crypto@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-ClientProxiedBy: SATLEXMB04.amd.com (10.181.40.145) To SATLEXMB04.amd.com (10.181.40.145) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SJ5PEPF000001F3:EE_|PH0PR12MB8099:EE_ X-MS-Office365-Filtering-Correlation-Id: 0c27392a-130f-4c40-31f5-08dd3a8037c7 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|376014|1800799024|36860700013|82310400026|921020|7053199007; X-Microsoft-Antispam-Message-Info: GtMetmtGAupJ91TLQ1iBoRKfnFj2f8jyHCvObX4zneEENdhcj0KDFUF5rX+eR+vvI+wTSG2Pd5STshWWzr0GFYcd9x/kcenR3/N9k1hSohoLtqsWYpegrDcDa7MOWEtKQxUt9uXFzKRZUtZAeprhdGG5Y1K+X3zDnER7/LdlHigDQl9ADfo6q79mKdNYsoYIDqF5oX8ofhYV5mvF6Laa3ryzSmuM+xmmmOfoI+pB4sbjirtsLIKeVJeFFd6np24sD18uyZAyvvEHxmUQf+DNV+lwUqtoUQCSrgUs0sj+lhHZ8Sw65VYgCygGl+JzOgiJGRe2r3uf4WN5KPzBLAx5qNUHNakf0JuDI01C+dxbfvPD9Tq1MhwyzDY6k5Qs+29Z52hqj9iSstU0HGlWb9qp/GRZdxIx8LN6IVYZxef8WjKVcZlIo+BpW7F0CfJHHtlQkMXqp/H/q8ONW1nmWHZondbl6UKQ4Xq6lBu4ljzSx67QZ9sB0PFBicGD1rCNx6/oobDr5G0ESqRUcGrzJ5MDMoeB7TRnR46ELwoVTd6ouGA36CFbpwlmJ366iZIUucXsPholWdwiHKMRgJkcjifcrRQLEdnjGc4xxzJmKRKGJWLtCS00jM0jieeUendKLUYLPprliGAmiOEKQkPdWHaVHMbHcj1SrMgjH9W7C01N42h5QpZCVfreHr+R4CklJLRzQQHFmloc1ckqiQQBZe6oo1dKiyoudB02dZcOVpK+Qg+LwR3HKEMheBosc+XBzveV7ROOyg4PoB6txl+aR8bY1VN2lJBPcCgGpBgj4ypuJ1JOaoIQqPF4IFn1ixXq+//ukFdjsznjFQnOhN4n0Hn7aZ/33NMoF0Ko5xIamemPNRbThhb/ss+AG8s21Su4iSFf6qqNH60sM/Ct8qeSiz0TgofVl1i1U7cj01BQSKu9QyGu/3iGtf7Qmdf8TmH3tpkk4Dje8J/4XtcXLUx9vdZ4an8cq6AduwiMiLxM2mGULdK3dbL3fCBB6NvdLwzoL2FtCXHHklsukmpBcv7xut1TlRaimQ0VoBjAdgQD5Jk8VJl9A4h7X/M6+9xdDrdQDda/Z3FsJBHUJmqWCcvbD+oKBB9m3uJ0ny8Toj+8NSvi3eccRYXhbatOWrVCL1uvILfa8exnuFGsiAhI2FMKE346VJCACDFThOCoVIwjzk9bn/znUkpo8J5tZORhQ7Ql9l6qiDM+L41JeVsTgeDNIoNDO/ewW6tLnTK/6kZFwgib6XpSrq1zlwSsnTKZ7O2pQEOJ+D8yz/9hJiG1YtjbNafb0ntNCEtAgpTjn10Fm2/qGBfcU70JmNBEnkCmh48xQQRmK0poAHLgG7CtBmZDbeFTZfm3Nkp+LKiM2ZLKfvKetMbZTyj4BcdcsVJYHJrzhx9AR9SMn08Wv9B3RoFr1wVQggp98NUxeVLb4mBdVGtO8lxobvgMs5f83mXGMBdn3sJdhnnN6a9oN+oXspLj4W1aFd2ueHk93czbBqafpqOnM1QpIzz7cnGU++zDhihY8sWv 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)(7416014)(376014)(1800799024)(36860700013)(82310400026)(921020)(7053199007);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Jan 2025 01:00:52.0942 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 0c27392a-130f-4c40-31f5-08dd3a8037c7 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: SJ5PEPF000001F3.namprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR12MB8099 From: Sean Christopherson The kernel's initcall infrastructure lacks the ability to express dependencies between initcalls, where as the modules infrastructure automatically handles dependencies via symbol loading. Ensure the PSP SEV driver is initialized before proceeding in sev_hardware_setup() if KVM is built-in as the dependency isn't handled by the initcall infrastructure. Signed-off-by: Sean Christopherson --- arch/x86/kvm/svm/sev.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/arch/x86/kvm/svm/sev.c b/arch/x86/kvm/svm/sev.c index 5a13c5224942..de404d493759 100644 --- a/arch/x86/kvm/svm/sev.c +++ b/arch/x86/kvm/svm/sev.c @@ -2972,6 +2972,16 @@ void __init sev_hardware_setup(void) WARN_ON_ONCE(!boot_cpu_has(X86_FEATURE_FLUSHBYASID))) goto out; + /* + * The kernel's initcall infrastructure lacks the ability to express + * dependencies between initcalls, where as the modules infrastructure + * automatically handles dependencies via symbol loading. Ensure the + * PSP SEV driver is initialized before proceeding if KVM is built-in, + * as the dependency isn't handled by the initcall infrastructure. + */ + if (IS_BUILTIN(CONFIG_KVM_AMD) && sev_module_init()) + goto out; + /* Retrieve SEV CPUID information */ cpuid(0x8000001f, &eax, &ebx, &ecx, &edx); From patchwork Wed Jan 22 01:00:56 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ashish Kalra X-Patchwork-Id: 13946734 Received: from NAM02-DM3-obe.outbound.protection.outlook.com (mail-dm3nam02on2088.outbound.protection.outlook.com [40.107.95.88]) (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 862AD136347; Wed, 22 Jan 2025 01:01:14 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.95.88 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1737507676; cv=fail; b=BLm2fIu/kAa/ndXqtFRgLNk7jy6rtythg+yIdrXPENevvYq3vtEfoJlYsZahwN4y3fOhMQvmP2VzXtjZXqfgXi2SGimF8ZkhSVpc2smNF37f6HR9Ao016TlEpxZkbAaFzN3GnDJUSmycuqSTdAXQfnQAZG8N77s5uVVS4oHiW7U= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1737507676; c=relaxed/simple; bh=zpGaR6EHG5fQfxBeXMMpbMsE069zeSMeHAjT9DdqQO8=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=WTlFhTHlZAibqBuBZPXwFEYCsIqdYs9wEsGgDHhQeebB1nvUUvQ4DscD03z8Rdoa2EiUYLC/KSIr+5xEAKfx4Rtjf+vld+oQkCKmyu1ZEkP7ra9w+V1q/On0fQIzm00B+UZhow3NHo4C7FDWCbKc7AfvtVT+gJ+uJQwibdwd+hw= 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=FvFoqwRY; arc=fail smtp.client-ip=40.107.95.88 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="FvFoqwRY" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=AN2KOpahZxx/nhlnuMLWsmaXDq+Snq0kZ+cmV5pWGWR4+UQ+b+EoaAyh0XwCrbdPxwrVxDjOSPtl0DH424X3YPkOxpdCSwgh+U9hjTjXEhlHluZ95BUUOcaIVD7SirEEfdE4OunjmZCysSWsgBmJlpQUUA4UVTL4y0tF4182HvkkIKIhtUaF/Xx/oukbo4I3gd7G4AaK3GPRtUQ6cAVcdybhHBi5pg4Wz0ULVvQRQWXaIIX7rl4nIJxxZ1Lh0KEE7olInbUFXVyPofnOT68VE/Z5LAWbq772rNurFKTefL9Ars0TailTYp8/UKm3wB6mHA2pAfEYXoXR2MACNp5ioA== 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=cAzKFq3HueqHWIEXHbd93DcO2eDTOy88QFga8E6xVa4=; b=BMSB+eK/7F6Sk4kiDROEn85X6J1QB3vIz4KVN4qUszxkMML4Vi2of4WtC1hzTJ5nXCCRCmambMWH9qBgM1RyQreyUqahcC0pril+UTkwYLlMmvkCCQhf+1PbSiBE0+ToMS6PwpOzghKecj8kCsqyjkpyzUUeWfh0H/oVwBiBoPShB+UHqqivLVykq0h4uqRREcU3ZVPd8ZJyZJzBjBqqYVrKXXwQf43fbPns7q1EWwsSPgHAMMR6Nwk06Y9MvODNw06ZUZhhUT9j00Q03HPMsEPRsv0WhZtycVI0YyNeMfcb1YpilrzYkM6RDI+E9JC4RUeYJCNdLGFwlgxka2O9kA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=google.com 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=cAzKFq3HueqHWIEXHbd93DcO2eDTOy88QFga8E6xVa4=; b=FvFoqwRYECzfdREcwHBuyO09hAxuVaXLspc48enoC/nm9O+JyHaIh/lPtJc2HaTqN8F70gbERSLxWRaOp9/LxID4/lvlKVcp0q0MGA3hFqDi4bdeZmqfalGkqr4l0SJsyoZ2iLWIVAIMz+wRsM2hU6CFDUyvChiDqitHwPdHAUA= Received: from BYAPR11CA0084.namprd11.prod.outlook.com (2603:10b6:a03:f4::25) by MN2PR12MB4237.namprd12.prod.outlook.com (2603:10b6:208:1d6::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8356.22; Wed, 22 Jan 2025 01:01:09 +0000 Received: from SJ5PEPF000001F6.namprd05.prod.outlook.com (2603:10b6:a03:f4:cafe::4f) by BYAPR11CA0084.outlook.office365.com (2603:10b6:a03:f4::25) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8377.14 via Frontend Transport; Wed, 22 Jan 2025 01:01: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=SATLEXMB04.amd.com; pr=C Received: from SATLEXMB04.amd.com (165.204.84.17) by SJ5PEPF000001F6.mail.protection.outlook.com (10.167.242.74) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.8377.8 via Frontend Transport; Wed, 22 Jan 2025 01:01:08 +0000 Received: from ethanolx7e2ehost.amd.com (10.180.168.240) 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; Tue, 21 Jan 2025 19:01:07 -0600 From: Ashish Kalra To: , , , , , , , , , , , , , , , CC: , , , , , , , Subject: [PATCH 4/4] x86/sev: Fix broken SNP support with KVM module built-in Date: Wed, 22 Jan 2025 01:00:56 +0000 Message-ID: <6fc4cd0f07f884da4345951670aebff8815270b7.1737505394.git.ashish.kalra@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: References: Precedence: bulk X-Mailing-List: linux-crypto@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-ClientProxiedBy: SATLEXMB04.amd.com (10.181.40.145) To SATLEXMB04.amd.com (10.181.40.145) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SJ5PEPF000001F6:EE_|MN2PR12MB4237:EE_ X-MS-Office365-Filtering-Correlation-Id: 0d72c32d-c011-471c-e510-08dd3a8041c8 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|82310400026|7416014|376014|36860700013|1800799024|921020; X-Microsoft-Antispam-Message-Info: KHjy4RQ3ZGjUzyExy0ly/U0NfG844+5XBXGYVYWXhQc7R4djDNAbuPzBmW1KfAOfgUYEHt2xMlz1m0LjIySX9jQ8DZjVxbS6Vl5GIq9SbAHawXa25zJw1VPIzyMqU3hka2ajbtIFIIkYJUN4zLTcLBxO4sTpQuI0jfQw4eRR0SVyd+WEvDV2xcTVqSi9xL89kchcB22leashJDr1pJ+XYHgJ7VJMxrQOFZxuzY0PJyuzsh9ooV8x3bXRHMIvDvb8PpKvt96itsuogML913f9/zmt8J1j++gCQGAQfkuNlU6TdvVS0HD8mxbTPRNTno5XbN6qh0LK4FXwyNmCP7mBIf/+ez6nzxl7zAUM3mrr8cCwKUQim0EkwthxtM5sZNVmnCO1f42cfJcbdWG9FXUMKbFQPFPMNtQaAQNIF1+vYS2Mvf6bBsaN/whPkClj8GN7DtXWSHzSTJQ0X4WkTK/BTH7ZB8TIWPDpvWkfZDfUMdqBmtePRVqxYSspCPQ9xEeDo4dIGfmXzclhnBkQTxPSdQ2A4X4hRJkEwg+sYvQF7LVNxvXOdXChc3Cs8QqItJLbg+2Q5g98Laj2RBnYtt+L+ijrGcms1ZIwymzdKYp6i68Xwk+F+o/VnFHlxwn8qhJa/1HbzBjpJEHrJjrf05mxteN7TEBAUYZZIgOFRKeogrxRGsLriO8hq/1X+2nwhk/wLwYzvBfXeBgVS8t1THm8WZ84NV9OsJe4Y9u/xiK4uxjCBfRgrEijLp0ZSvg7BGHir9Br5jPmOiAgL0LrYbWkodmFt64dF2SCbQKqkw8wLjfuRalNOfiYwZ2vx4hMFZ9C1HbLVhpVdSes048FUq7H3RZP1o4bLwNgJgce8PURZ9lWdgp/x/4lqDxP7HDVnOhQM33FcFy0HrTje7OEoZdv2Ok/3V7WgdWWL5KK0kf62sIPBSn8YOjU9H6CwJnROz1NrONzps6g9B9XLLp4LsFNf23rHwldRlasulbANsGUzd/Vj3zN0IH0HmjO4kbWJBb2HCfX3rbsW5RJq40a2KTzi8xKmUk4e2TSBYN22TYuqrJAIkOM+mJ//3f8tget5hu35i35/Ku+TULrmhIdpfsoV2fAyPiNEE/3XJ2JTE+4SfArINfIsUiwlugtwsKYhyDpIUnOkwD0poxJH2f4n1yc2RbDDCnlOWd+o/CCMzpz+ujPvShkzs2RjRNbVTMhCIrVuLXoXPD7BbwqQM5EqBcyAK6xmbLnf0yDtKiTGlrQgayKCV8WOGWa756rWZrR164+Loc7/Mfg/ro4mzEvQ+DykLsu7MyT7Ve9vR+IFIfQm+sDuAhZm9RL2EslU5MV/LnKzuqzbPELMwttmIJ6RX9YYDF/P6NyxWMiDLSHSbxDD0hIYpnZmjEYyIGZrXBqXgdC8crbrfgrOWsZIujpIM4mhHYPycS5nAP54A9V84Sx8RWD9hgXGBz+M59/kMe+P31TYUGXL6KcqfQte4gYA8s+0Ap+m0JNiYG5eKAJ2p8mAdfgVOf4VKCApM8FdXcCNw2J 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)(7416014)(376014)(36860700013)(1800799024)(921020);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Jan 2025 01:01:08.8669 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 0d72c32d-c011-471c-e510-08dd3a8041c8 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: SJ5PEPF000001F6.namprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR12MB4237 From: Ashish Kalra This patch fixes issues with enabling SNP host support and effectively SNP support which is broken with respect to the KVM module being built-in. SNP host support is enabled in snp_rmptable_init() which is invoked as a device_initcall(). Here device_initcall() is used as snp_rmptable_init() expects AMD IOMMU SNP support to be enabled prior to it and the AMD IOMMU driver enables SNP support after PCI bus enumeration. Now, if kvm_amd module is built-in, it gets initialized before SNP host support is enabled in snp_rmptable_init() : [ 10.131811] kvm_amd: TSC scaling supported [ 10.136384] kvm_amd: Nested Virtualization enabled [ 10.141734] kvm_amd: Nested Paging enabled [ 10.146304] kvm_amd: LBR virtualization supported [ 10.151557] kvm_amd: SEV enabled (ASIDs 100 - 509) [ 10.156905] kvm_amd: SEV-ES enabled (ASIDs 1 - 99) [ 10.162256] kvm_amd: SEV-SNP enabled (ASIDs 1 - 99) [ 10.171508] kvm_amd: Virtual VMLOAD VMSAVE supported [ 10.177052] kvm_amd: Virtual GIF supported ... ... [ 10.201648] kvm_amd: in svm_enable_virtualization_cpu And then svm_x86_ops->enable_virtualization_cpu() (svm_enable_virtualization_cpu) programs MSR_VM_HSAVE_PA as following: wrmsrl(MSR_VM_HSAVE_PA, sd->save_area_pa); So VM_HSAVE_PA is non-zero before SNP support is enabled on all CPUs. snp_rmptable_init() gets invoked after svm_enable_virtualization_cpu() as following : ... [ 11.256138] kvm_amd: in svm_enable_virtualization_cpu ... [ 11.264918] SEV-SNP: in snp_rmptable_init This triggers a #GP exception in snp_rmptable_init() when snp_enable() is invoked to set SNP_EN in SYSCFG MSR: [ 11.294289] unchecked MSR access error: WRMSR to 0xc0010010 (tried to write 0x0000000003fc0000) at rIP: 0xffffffffaf5d5c28 (native_write_msr+0x8/0x30) ... [ 11.294404] Call Trace: [ 11.294482] [ 11.294513] ? show_stack_regs+0x26/0x30 [ 11.294522] ? ex_handler_msr+0x10f/0x180 [ 11.294529] ? search_extable+0x2b/0x40 [ 11.294538] ? fixup_exception+0x2dd/0x340 [ 11.294542] ? exc_general_protection+0x14f/0x440 [ 11.294550] ? asm_exc_general_protection+0x2b/0x30 [ 11.294557] ? __pfx_snp_enable+0x10/0x10 [ 11.294567] ? native_write_msr+0x8/0x30 [ 11.294570] ? __snp_enable+0x5d/0x70 [ 11.294575] snp_enable+0x19/0x20 [ 11.294578] __flush_smp_call_function_queue+0x9c/0x3a0 [ 11.294586] generic_smp_call_function_single_interrupt+0x17/0x20 [ 11.294589] __sysvec_call_function+0x20/0x90 [ 11.294596] sysvec_call_function+0x80/0xb0 [ 11.294601] [ 11.294603] [ 11.294605] asm_sysvec_call_function+0x1f/0x30 ... [ 11.294631] arch_cpu_idle+0xd/0x20 [ 11.294633] default_idle_call+0x34/0xd0 [ 11.294636] do_idle+0x1f1/0x230 [ 11.294643] ? complete+0x71/0x80 [ 11.294649] cpu_startup_entry+0x30/0x40 [ 11.294652] start_secondary+0x12d/0x160 [ 11.294655] common_startup_64+0x13e/0x141 [ 11.294662] This #GP exception is getting triggered due to the following errata for AMD family 19h Models 10h-1Fh Processors: Processor may generate spurious #GP(0) Exception on WRMSR instruction: Description: The Processor will generate a spurious #GP(0) Exception on a WRMSR instruction if the following conditions are all met: - the target of the WRMSR is a SYSCFG register. - the write changes the value of SYSCFG.SNPEn from 0 to 1. - One of the threads that share the physical core has a non-zero value in the VM_HSAVE_PA MSR. The document being referred to above: https://www.amd.com/content/dam/amd/en/documents/processor-tech-docs/revision-guides/57095-PUB_1_01.pdf To summarize, with kvm_amd module being built-in, KVM/SVM initialization happens before host SNP is enabled and this SVM initialization sets VM_HSAVE_PA to non-zero, which then triggers a #GP when SYSCFG.SNPEn is being set and this will subsequently cause SNP_INIT(_EX) to fail with INVALID_CONFIG error as SYSCFG[SnpEn] is not set on all CPUs. This patch fixes the current SNP host enabling code and effectively SNP which is broken with respect to the KVM module being built-in. Essentially SNP host enabling code should be invoked before KVM initialization, which is currently not the case when KVM is built-in. With the AMD IOMMU driver patch applied which moves SNP enable check before enabling IOMMUs, snp_rmptable_init() can now be called early with subsys_initcall() which enables SNP host support before KVM initialization with kvm_amd module built-in. Fixes: c3b86e61b756 ("x86/cpufeatures: Enable/unmask SEV-SNP CPU feature") Signed-off-by: Ashish Kalra --- arch/x86/virt/svm/sev.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/x86/virt/svm/sev.c b/arch/x86/virt/svm/sev.c index 1dcc027ec77e..d5dc4889c445 100644 --- a/arch/x86/virt/svm/sev.c +++ b/arch/x86/virt/svm/sev.c @@ -571,7 +571,7 @@ static int __init snp_rmptable_init(void) /* * This must be called after the IOMMU has been initialized. */ -device_initcall(snp_rmptable_init); +subsys_initcall(snp_rmptable_init); static void set_rmp_segment_info(unsigned int segment_shift) {