From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from NAM10-BN7-obe.outbound.protection.outlook.com (NAM10-BN7-obe.outbound.protection.outlook.com [40.107.92.84]) by mx.groups.io with SMTP id smtpd.web11.91258.1682454889368785971 for ; Tue, 25 Apr 2023 13:34:49 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@amd.com header.s=selector1 header.b=4tOn5ngA; spf=permerror, err=parse error for token &{10 18 %{i}._ip.%{h}._ehlo.%{d}._spf.vali.email}: invalid domain name (domain: amd.com, ip: 40.107.92.84, mailfrom: michael.roth@amd.com) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Ggc2tazvpt3eovqmt6/vDvSxsM/0xQQdXLnTNTOEutyXRlxHSewaLa0nSQq648v1EY4MVoJ189etH7+0I3wICIE27i3rbw/jnCwkaJ3YfSVptIDhZQ6336id45PxF+nT3JiD1WyKpqgp7SsZajMfzFfq9c9Td8ZR9QmNCPw4ZvhrAp4iZTPMrXjHBI14HvTAaWQnmBlqzzfmYX+9N7EKVG6pc3e4EbMcqFdGziDN+bWWLKWlIOY5B4IE2uLEPCOMSOjXxaTjHDy9SZUMX9Cfvqlrq8mTEuq3CraYMBMoZ9czVle0lSyd1pAcHA4re6JPUmgZmCxRWAecx7I765rzIg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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=2yozTvsHGqx9SmxUH09ZYuxrsPLx4syK+Zo+wQ80uQo=; b=lZJSd1XG/xVZkrF53jmHrmXjszne1W+A4FQt4aGhnS5BrLEj0123JEsP/abXoc3ldWtP9G8PjB8BV1HpcLU8sPKQMyuFdZFODx8WN8/l9h0+/JlpiYETlRbN8qE7NLq6MppMVyyJaF09yDNw2RnpZFwG0XaLpV1PqMzNL0VdTZRJYMX9HUrsvdLfZN7VUsnCEyaOQSNYOZSZ5hPu9CyNhyn5nf6x8UyfaCHJlvw0XJtAw6x7wd32X3u4jVQMJxnrE6LKXtDGSOpqsLhJbK+1+94QPNvPNQ1xSGRtsuRlpmBYgbf9DVpfHuAqENOLEGWv1jsI/YkK3AzVsT4C4k67QQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=edk2.groups.io 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 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=2yozTvsHGqx9SmxUH09ZYuxrsPLx4syK+Zo+wQ80uQo=; b=4tOn5ngAIMkb5X7Eg0USrgB7oPnD6NvY24YTx13cHS9w6Sg3HbCEqCtUKqVNGzS0xScIuegYotTXFjHk5wo6W9X3DCFFOrxpieqX5BJPyu18vZVlzpzBwTISJDwO9IYMMsvo4iu7YOb3brnJgeApDKzLDmX2HGHFHAta6tgUs4g= Received: from BN0PR04CA0105.namprd04.prod.outlook.com (2603:10b6:408:ec::20) by DS0PR12MB6560.namprd12.prod.outlook.com (2603:10b6:8:d0::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6319.33; Tue, 25 Apr 2023 20:34:45 +0000 Received: from BN8NAM11FT048.eop-nam11.prod.protection.outlook.com (2603:10b6:408:ec:cafe::5b) by BN0PR04CA0105.outlook.office365.com (2603:10b6:408:ec::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6319.34 via Frontend Transport; Tue, 25 Apr 2023 20:34:45 +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 BN8NAM11FT048.mail.protection.outlook.com (10.13.177.117) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.6340.21 via Frontend Transport; Tue, 25 Apr 2023 20:34:45 +0000 Received: from localhost (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.2375.34; Tue, 25 Apr 2023 15:34:44 -0500 From: "Roth, Michael" To: CC: Ard Biesheuvel , Tom Lendacky , Jiewen Yao , , Gerd Hoffmann , Erdem Aktas , James Bottomley , Min Xu , Pavan Kumar Paluri Subject: [PATCH v2 3/4] OvmfPkg/CcExitLib: Fix SEV-SNP XSave area size calculation Date: Tue, 25 Apr 2023 15:32:57 -0500 Message-ID: <20230425203258.255583-4-michael.roth@amd.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230425203258.255583-1-michael.roth@amd.com> References: <20230425203258.255583-1-michael.roth@amd.com> MIME-Version: 1.0 Return-Path: Michael.Roth@amd.com X-Originating-IP: [10.180.168.240] X-ClientProxiedBy: SATLEXMB03.amd.com (10.181.40.144) To SATLEXMB04.amd.com (10.181.40.145) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BN8NAM11FT048:EE_|DS0PR12MB6560:EE_ X-MS-Office365-Filtering-Correlation-Id: da08b905-f801-48da-f078-08db45cc81b9 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: B99a6HURsR070KtB3GCnJuZ+v22gIqViFWNDFNFEntsAVlAEUJ+gZcGS1tJ1j5zkLuQoyc+ee0yIeUdfdTLU92E1ylo2Py8k37I8QFOCIsWoxn9OXSUU71sr+JmyYbR1hffxv7KxZ/rjuE3aULWkcu9xtS/C6u4qwgnK/tun1WPYMQzI9TACVDXiDi0JjFg806eDbkQLEj4nvtOQvoSyE3+PArpb1UJUY+d/Bx1gdWztWdXE+KC/HflzdbNqpVbFk2VEAENbTFssmJQ8A41PfMx0yxX47Kuy1AFoZm0eKIIgmyesNzUFpa2Z1U96ulra9e1y4eVc/tgaETI3CWs8bCvynLtc8ClVkTuxsx6SzzGMiw0Fh9V4vk8N4H7Y9Hy0cpU95JOIJVj7yuUEdkLfqdwiJgW7NEUOo7wdpkIfHIHcXQMs7GhFgrdcaMr/COqv+AkFnrgs9hYy6uLX5zqVYr5/GFePHFIg8GDtGhWzW3Ju75zAmZ3YJ8XVMvRXORDUnHWfLNgBROVZYYTLPE67M2WbZnfsKrKxZO2tFpIh9ifuubgY8Ghb2ZdRB+gmjKcqhACtRDr++e7a9X39yqLK+47oPxFGzsl32IYxf7GB9l6n4SHLS9nZOwKCMAXO7Mfu32Wdp9lr0j0dJSvZnvl6LbryQgk88Oew+Ziug4nC3y+rlcwtahGX3UIDzwFesXHiiED1PpdFQ8CkKjYaSZKyCp/MFvQ8ooFiutxZYJ/mvBw= 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:(13230028)(6029001)(4636009)(396003)(39860400002)(136003)(376002)(346002)(451199021)(46966006)(36840700001)(40470700004)(86362001)(186003)(26005)(1076003)(5660300002)(426003)(336012)(2616005)(82310400005)(36860700001)(16526019)(47076005)(83380400001)(6666004)(478600001)(54906003)(36756003)(40460700003)(81166007)(44832011)(41300700001)(356005)(2906002)(8936002)(8676002)(82740400003)(316002)(70206006)(70586007)(40480700001)(6916009)(4326008)(36900700001);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Apr 2023 20:34:45.4211 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: da08b905-f801-48da-f078-08db45cc81b9 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: BN8NAM11FT048.eop-nam11.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR12MB6560 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain CPUID leaf 0xD sub-leafs 0x0 and 0x1 contain cumulative sizes for the enabled XSave areas. Those sizes are calculated by tallying up all the other sub-leafs that contain per-area size information for XSave areas that are currently enabled in XCr0/XSS. The current check has the logic inverted. Fix that. This doesn't seem to cause problems currently, but could in the future if OVMF made more extensive use of XSave areas. It was noticed while implementing SNP-related tests for KVM Unit Tests, which re-uses the OVMF #VC handler in some cases. Reported-by: Pavan Kumar Paluri Cc: Pavan Kumar Paluri Reviewed-by: Tom Lendacky Acked-by: Jiewen Yao Acked-by: Gerd Hoffmann Signed-off-by: Michael Roth --- OvmfPkg/Library/CcExitLib/CcExitVcHandler.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/OvmfPkg/Library/CcExitLib/CcExitVcHandler.c b/OvmfPkg/Library/= CcExitLib/CcExitVcHandler.c index 7fe11c5324..94f0c4872c 100644 --- a/OvmfPkg/Library/CcExitLib/CcExitVcHandler.c +++ b/OvmfPkg/Library/CcExitLib/CcExitVcHandler.c @@ -1145,9 +1145,7 @@ GetCpuidXSaveSize ( for (Idx =3D 0; Idx < CpuidInfo->Count; Idx++) {=0D SEV_SNP_CPUID_FUNCTION *CpuidFn =3D &CpuidInfo->function[Idx];=0D =0D - if (!((CpuidFn->EaxIn =3D=3D 0xD) &&=0D - ((CpuidFn->EcxIn =3D=3D 0) || (CpuidFn->EcxIn =3D=3D 1))))=0D - {=0D + if (!((CpuidFn->EaxIn =3D=3D 0xD) && (CpuidFn->EcxIn > 1))) {=0D continue;=0D }=0D =0D --=20 2.25.1