From patchwork Thu Dec 9 23:53:32 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Krish Sadhukhan X-Patchwork-Id: 12668483 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 27DA1C433FE for ; Fri, 10 Dec 2021 00:48:48 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234969AbhLJAwV (ORCPT ); Thu, 9 Dec 2021 19:52:21 -0500 Received: from mx0a-00069f02.pphosted.com ([205.220.165.32]:65128 "EHLO mx0a-00069f02.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234930AbhLJAwR (ORCPT ); Thu, 9 Dec 2021 19:52:17 -0500 Received: from pps.filterd (m0246629.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.16.1.2/8.16.1.2) with SMTP id 1BA0cXUX025244; Fri, 10 Dec 2021 00:48:40 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : content-transfer-encoding : content-type : mime-version; s=corp-2021-07-09; bh=226riLu/l926u77ypfEBeOS8GN2KCwjsSNaHJWk9DiI=; b=RBfKWWuQHiMspXnMtj+KmPcCLAk3xwXQrHVSteSK3/F+hPm+CpOvaut5CpUlBgNIMWdg BJVPzhDncNvj0ynX1S6OJ5BsxCVlNGsS66y5pNnIaLiMR3q+5rDBxIzVd6nxKB9hyZBD cSGOTN7N40dTw7KCFSWkFPuZdknd+7LU8gA58hdcqYwnAAmepq/YXrh182jKUTLtRzYx 3k8eE/H35Kg1yhN6+XviSyDCDH/yTT4/4zAynePWkinK5sp7Cu/58JLam8AAS4dJUM5K OSTa/82pSwM74WGFMXPD0o0BzWnQPzrogjRD01IlyJo/TeGxTHbi8z4ar9FZG1T9McbN xw== Received: from userp3030.oracle.com (userp3030.oracle.com [156.151.31.80]) by mx0b-00069f02.pphosted.com with ESMTP id 3ctua7mh57-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 10 Dec 2021 00:48:39 +0000 Received: from pps.filterd (userp3030.oracle.com [127.0.0.1]) by userp3030.oracle.com (8.16.1.2/8.16.1.2) with SMTP id 1BA0jI5Y133642; Fri, 10 Dec 2021 00:48:38 GMT Received: from nam10-mw2-obe.outbound.protection.outlook.com (mail-mw2nam10lp2106.outbound.protection.outlook.com [104.47.55.106]) by userp3030.oracle.com with ESMTP id 3cqwf34j01-2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 10 Dec 2021 00:48:38 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=GeynQS3c7XgrZMv15HG4BPtCRdcC8BJnCnuDq1mOkK5dVTrs2mviQ3no4jS3bNNS9Qw78tVrzxDqRP6iw7xgNsd9D1eUjJKskYPhzsOIOtfvzFGveqh3DeOUSq8LKU5q54MOzpgYYaMX1GRaqmG2KXlKB1ivk8MmWRefYV1LLM78VeFCiqaTiQmmPia5ovtsxLfbmv2EAoGBSe1OsVmvKzuKO0BgaxXNSLTH+QGGoNLqesgYkunVsv6GzL5jZwUz8aIHHF87A/1lQ3v5PlHBPmDmkvVChdZDidK8oBNsnyb1ritPV2n0PnkT/cLwSXQ0D0YkmbLkdSiVU0kNTOTZEQ== 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=226riLu/l926u77ypfEBeOS8GN2KCwjsSNaHJWk9DiI=; b=nLE5IrlOSMlft1dSy6IyPelNBpeUF0fppEUip4QxU0OTMmnAXspDFiYZc7DXRR7wLu+dBOAp5AXLqmy+BVx4VH09O9srb7ns+DakD2Ru6nE+Gbx8f5qKZ+S8C0LHdei7H2AmbQ5hN4U/Vg01hjBnck0RJOxRXXnn1LJGjkyH6oNF7y+toOQdLtHdkR7ZQ0zouVhYOck54n0+3VrZvWoDE0tTO0PXtyqrQ8mPgj7wJSkYo/FzVuPOzTuH3GlDjF9lRc6AEL1BKgUZWZgsOGSM8bvF86PJKdYhfnSE9TDKsvqnnHFiD7USwPz3j0cyDBeR5UqoQ6ddD/nZI/jFKzoo6g== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=226riLu/l926u77ypfEBeOS8GN2KCwjsSNaHJWk9DiI=; b=QzfdCvcsU9QUnDdn4J0ZF4GzusIr+fRN9fq79DyWx+wNAPiTYkOJv5iatl7FdAw7E0EqmXQ+1tgY2Oe2MeN1E1TnOkMtMcSvVto7rHzuKuKO7VydgfHsElvDKncWAiNLN73QbKTQ6T3L1pUWufKrChBMJq+lB/axeNmDENCwrfs= Received: from SN6PR10MB3021.namprd10.prod.outlook.com (2603:10b6:805:cc::19) by SA2PR10MB4459.namprd10.prod.outlook.com (2603:10b6:806:11f::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4755.20; Fri, 10 Dec 2021 00:48:36 +0000 Received: from SN6PR10MB3021.namprd10.prod.outlook.com ([fe80::b94c:321d:7ba9:7909]) by SN6PR10MB3021.namprd10.prod.outlook.com ([fe80::b94c:321d:7ba9:7909%4]) with mapi id 15.20.4755.025; Fri, 10 Dec 2021 00:48:36 +0000 From: Krish Sadhukhan To: kvm@vger.kernel.org Cc: pbonzini@redhat.com, jmattson@google.com Subject: [PATCH 1/3 v2] nSVM: Check MBZ bits in nested CR3 (nCR3) on VMRUN of nested guests Date: Thu, 9 Dec 2021 18:53:32 -0500 Message-Id: <20211209235334.85166-2-krish.sadhukhan@oracle.com> X-Mailer: git-send-email 2.25.4 In-Reply-To: <20211209235334.85166-1-krish.sadhukhan@oracle.com> References: <20211209235334.85166-1-krish.sadhukhan@oracle.com> X-ClientProxiedBy: SN4PR0801CA0010.namprd08.prod.outlook.com (2603:10b6:803:29::20) To SN6PR10MB3021.namprd10.prod.outlook.com (2603:10b6:805:cc::19) MIME-Version: 1.0 Received: from ban25x6uut29.us.oracle.com (138.3.201.29) by SN4PR0801CA0010.namprd08.prod.outlook.com (2603:10b6:803:29::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4755.16 via Frontend Transport; Fri, 10 Dec 2021 00:48:35 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 1454b94a-6a4f-4e7d-0c54-08d9bb76cc88 X-MS-TrafficTypeDiagnostic: SA2PR10MB4459:EE_ X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:5236; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: lDhlO/cFQT09YI9AKyn495xwa4ojHpjjWPCV1RaECCxhxMw5LkVp+evzT0DGliQ0s6y0SP1A6/B/VNyvlpUgjArk13QywLA2/tBvWEkudrRozaLLs/Ce7YJecIuL4zzOvhU7YPyUGkS4IZ/S/lsZvgkhpbm4gXsndNqgqB7qVHS00aUFHKQQ66WQvJemdETNIR7NsyMrtSSJLX569OUJgWcGkddwQViUzWm5rw80fxTrfnfg/RaTaGHdEZbWZyGaQR6pDQ1fNCqzo/pB2O3NmqKmecBsWhtJwGfwftDCAjGyb5hgftPklGvTFQ2owSQ8UB5qMDs3l1JO/zQfPKPvoW/gGbgZzPWgKOKP20qDqFIMhE/teaubZR7JknnM/KUbITzSoF25KBw2p4yPCJu/dPgRRIUK/6regGl8uhDPyf2OnobtPoQfHT/N/KezRY/osyIZfI8kDsS7Sl6Nf1LC8GOqK4XN/C3OkYpDL7fK2TTDYV7mLhjzKO/yBzqLACYZcN5aQDAQD+Paf8FsM4OMDBVkotXykfBRAd/CwvbVQKDNk8wLdT+mpK6Ao0dFGZ7K6ZcCm5vfqTWkomalSSbXXUA3R9fhjFV+n3nSM/DgmCfjRnj65G10mqSe7GxUEGHV/XpfIHl+ZsBAFzfgaIfnPfbVozm71H7n4xh4nyX7cVBAd7ma200hg0uJZriE0+8nzgskN2N+4gjBp5ZGlYe0bg== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN6PR10MB3021.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(6486002)(8936002)(7696005)(66556008)(52116002)(86362001)(38100700002)(66946007)(6666004)(38350700002)(8676002)(316002)(186003)(2906002)(4326008)(1076003)(66476007)(508600001)(6916009)(956004)(36756003)(26005)(5660300002)(44832011)(2616005)(83380400001);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: HaV/MTZRZR6iTmm95/Pz4EuzFEsYX2O7mD2ep3q4OKjYz8MvFRlynbMXyOQAHN+dLHlla8hMPFMNn8ic1tp3aNHETslPICzo3IW4E21QSlDHhFCP/virfeFOMIXkEL3cCRpeW3B4WWQlxa215U4VH4f8VVQYuCXTpdAj4+HC0yo6b6Baxt+0NcLH7yDXUPw+iU2prdF2ja0l/ZGGAOKdL/9XFQuPrXfDIWwY9V9yTNH6Chybgteix6GmFaZWvz8KhIY6Akx8/5mSDJ+qk0giGt6wIHoIgWmykC5T+t/1XmUlefu2VroQTZr3wT+KA4JdNcaqYVTbyD81591fhvzdpI0Me97v5KnI9HOxIxwvzU8kDVh/Jw529My0SxRXeSmXtzMIjAuwfSW51jEgE/QHTg5AdCpd4pSeUQ98OCA/xIloywU6rnbkIZvvVCNQYmNaUJ0JA8p9A2np1xmRxUXMC5X1FWWOj9HCVXorL9eMvJt1rnpUVW5rn6qORVGKoUfFg//fuSNMYCdL4M9B0XhBJNfuQRpWkZI+nZx0cGKn429k5Iuy4iD7yoXp17ryQUhDINSuJ7Qwjd0Lw2r0PefQvN0+/7VQ+TT7urpB5R7vUBuvII8/e7+0yv+J0/nZkXmCdw1/fC2YK2q8HCfZqZy8lcv51sbEGhQWHiNsyeOTKtz9pb56Nm715/gKrsRjZHTK7w4hpE7O9b4TZdspkWpipr8dYV7FwppqOmk2KepId4ZScK6w1qepM9HWzL9zoihDebq1T5K9l2oLXjX+a18sMdQITbKH8axrqxbm3UwYb26iZNEOtsrZgvY6s5SP4qJdi23VnRlzos2hl+Y83VglQH5ZiIreE/KpW5yYNxmWmaGem0AdugtO0XAd8iNMoxQzaWzyx/oNngHUO/YviPw13Xzlg/EBfduHPRT7P2VFYKgDs6zV9n1vmoldet2HFI+UrsckPQJT3pqK7wWzazaLcsODjiellQ2uIfYfoV/M82UD0Oc6rf8WIrwfi0xzhX3qq+m53g2RYJQoZ9RGjstpwuPvMpbuq9ryp9Ilwu/hI6tlHeCN20HAKG8v9sqdw/UIw7QHz9rxVNqwVBwcCIAg91FxBoMnd620WOCqlQpNywx241N7yH9kcUMJVHVOACmG+RECmpwxMPwFhiEw4zB3Mpg0Kpp9TqbT0AzqWnfy5ezHT4jBLY+Y3AiNnAfNjl/ieBQyi1CkYghEzGuzBHY8GpfDea60o+xB8WVvGlCexV6I7DOz7rodpMUzzlVk9HNFwfGrwem5ssWsdeh+Z968KH98slpgeSYO8H5hoWqaBthWQoARSVIVw2+TM2kc66mnlf9BeP8ZHax5EVBzjJ5Hpr4rm/HoZBcQlpFgdJeRDzdbktmDyfN7V4yN7fTx3UkNBLy/KXm5l9eWBvn+IK/yjob0MfoILUiUp4l4S4v3Tpo3ix1cC0CUkSdyA6CcEEZ5AUzapg45+RXdl9gpxSWbOowXGLYSUQot23CKXtKAh3k7gc2DGFBBfzWKJJhQJt+DzQHCIL3JFgeX49LtRlr+Jtd9pgwcqo0PmjmZ3p+bbTd11x6DZ+gBliruIIcLgQi9J7jzMdrebaplSGFqbKrWMVedqS+zjFfYYrmM0dmLujivhgp6beEYBnAgCoZl2mfEtxk5RvcL89fwrsscSnLlJg== X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1454b94a-6a4f-4e7d-0c54-08d9bb76cc88 X-MS-Exchange-CrossTenant-AuthSource: SN6PR10MB3021.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Dec 2021 00:48:36.5232 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: KN2RPARrSrs3Y40x70igFkMy3VnzLnkyO7MLaJ7GILsl0CPZyqsfLtqdVxN8RcmBcC4hPHQL97rY386Dr1T3FnEzOZXsq8ZixD7cjMO+gAY= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA2PR10MB4459 X-Proofpoint-Virus-Version: vendor=nai engine=6300 definitions=10193 signatures=668683 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0 suspectscore=0 adultscore=0 mlxlogscore=892 bulkscore=0 malwarescore=0 mlxscore=0 spamscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2110150000 definitions=main-2112100002 X-Proofpoint-ORIG-GUID: OHic8yajmfQlPHv6duU8V9kEbrvxDQjb X-Proofpoint-GUID: OHic8yajmfQlPHv6duU8V9kEbrvxDQjb Precedence: bulk List-ID: X-Mailing-List: kvm@vger.kernel.org According to section "Nested Paging and VMRUN/#VMEXIT" in APM vol 2, the following guest state is illegal: "Any MBZ bit of nCR3 is set" According to section "System-Control Registers" in APM vol 2, "All CR3 bits are writable, except for unimplemented physical address bits, which must be cleared to 0." Therefore, if any bit in nCR3 is set beyond VCPU's implemented physical bit width, return VMEXIT_INVALID. Signed-off-by: Krish Sadhukhan --- arch/x86/kvm/svm/nested.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/arch/x86/kvm/svm/nested.c b/arch/x86/kvm/svm/nested.c index 510b833cbd39..3b1d2da8820d 100644 --- a/arch/x86/kvm/svm/nested.c +++ b/arch/x86/kvm/svm/nested.c @@ -247,7 +247,8 @@ static bool nested_vmcb_check_controls(struct kvm_vcpu *vcpu, if (CC(control->asid == 0)) return false; - if (CC((control->nested_ctl & SVM_NESTED_CTL_NP_ENABLE) && !npt_enabled)) + if (CC((control->nested_ctl & SVM_NESTED_CTL_NP_ENABLE) && (!npt_enabled + || control->nested_cr3 & rsvd_bits(vcpu->arch.maxphyaddr, 63)))) return false; if (CC(!nested_svm_check_bitmap_pa(vcpu, control->msrpm_base_pa, From patchwork Thu Dec 9 23:53:33 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Krish Sadhukhan X-Patchwork-Id: 12668487 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id AF495C433EF for ; Fri, 10 Dec 2021 00:48:53 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234981AbhLJAwW (ORCPT ); Thu, 9 Dec 2021 19:52:22 -0500 Received: from mx0a-00069f02.pphosted.com ([205.220.165.32]:65398 "EHLO mx0a-00069f02.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234954AbhLJAwR (ORCPT ); Thu, 9 Dec 2021 19:52:17 -0500 Received: from pps.filterd (m0246617.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.16.1.2/8.16.1.2) with SMTP id 1BA0anO5023731; Fri, 10 Dec 2021 00:48:40 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : content-transfer-encoding : content-type : mime-version; s=corp-2021-07-09; bh=q151GMb7wtD/jK1JkOcJzVjZA15aOdV8NVf/EuU5AIs=; b=y2dsg4L/3Gq8Uf3YrJ9Ia7pxOhYtq0kZjiTs2Y8Lptb42zwEB3fiZb4SSm1jgPsLUAeh 5AW/hzOij50x9YUoI0SAWZtS3/OqTdEwOy5/yWJIXC8OQyP82jnO5bJJL4IAVm7pBfxc 48dTuOg1NFpXZn2O7Jb9B2NrtJDcD+6sqqHlZPVbw0iXvylYb2D68u5r50nTcjV7KBd0 sVId8Sj9Lv4i8jCV11qSEZ0x4d5nQgZ+srgqNtZJx//ZWB653w/3pdVm3jlHpkGrOtXN 5Ah7I+SXOr5yHHdzIiiwrIDTAm3v5wijoudNf1yJzOTrjabb6gbLn2GG2e8B3+lOcXP5 lA== Received: from userp3020.oracle.com (userp3020.oracle.com [156.151.31.79]) by mx0b-00069f02.pphosted.com with ESMTP id 3ctup54mjq-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 10 Dec 2021 00:48:40 +0000 Received: from pps.filterd (userp3020.oracle.com [127.0.0.1]) by userp3020.oracle.com (8.16.1.2/8.16.1.2) with SMTP id 1BA0knhI186438; Fri, 10 Dec 2021 00:48:39 GMT Received: from nam10-dm6-obe.outbound.protection.outlook.com (mail-dm6nam10lp2109.outbound.protection.outlook.com [104.47.58.109]) by userp3020.oracle.com with ESMTP id 3cr1stefw3-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 10 Dec 2021 00:48:39 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=eO58+YByRCcUD8NTSiayZrgIYCbaDG7KfBZd2gNZoXMemiM5NKuPFSN9N/b/d2Y/So6cMWKIqgciXT8w0w5r6Zgspi+xWXGTpF2HLCSVwkMXJr28mLVnUvT7rbB+IS44zVAquQHDTd+1UNdmHsr4tUiciWO5Mmd/c+M/zndhaNj7sQKUs/IZdnHObnBtVJs2THw3X6X8XxzdBn+HrDSWmS+6It3iVy9QkPP/l5MH3LcoWmnWABz4jhYyKu/3aAOJGveXpU/ITR7CI8hFO8vdxAyaEUjezjYowzsuBt7+wC4CJt39Mazr6NEdNrKoZ66/HEUC4kA769VpwEMUDDvR+g== 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=q151GMb7wtD/jK1JkOcJzVjZA15aOdV8NVf/EuU5AIs=; b=EuUaPBHW4sd8AbzptlyUb0YSRKsh7jc+V0zfXggRoICjUqGm8iaPkmVk60RAFVyfEViNiHVXzamv+WplIm5cvcS4r7oZGFCtVEJVoZUn+VxaqnFcnAKNv0JyOG62tJ3Dd7mRIpNSIsKJ7c7hWPZ1UgBDBcfZXJ5wAEejlS9Z+2tbO9jF5hjU9GomCu76jXm9xdJ3zYLASmrHHCBIl7a8IPy3QdkGRs7z0+Kp0gorKitRid0AhNmprRiK2JSllP8hNMCDbES2PSNWVDzs7yorZqvSc3iWU0Z+xc+9hQfF7Mgnof7oUE6UHkMrqpAn2f4AzZ4JblxE5FURPd43LwhfvQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=q151GMb7wtD/jK1JkOcJzVjZA15aOdV8NVf/EuU5AIs=; b=Vr1CC3HeDXoAlAj34m2Auc4QjwgJcrIiVHtA/XCldFreNsck7zTFJVxvvHZdYq6BzhDk99qbr2RfGcHEigPadeZSKSzug6tlOIDWhxSacGirYB2ekyksw0lBNg1cwCkPsQf+SFe31u99Vn7u5+SRXvxf/fQE8yoRtSfne8vL/cA= Received: from SN6PR10MB3021.namprd10.prod.outlook.com (2603:10b6:805:cc::19) by SN6PR10MB2942.namprd10.prod.outlook.com (2603:10b6:805:d7::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4755.21; Fri, 10 Dec 2021 00:48:37 +0000 Received: from SN6PR10MB3021.namprd10.prod.outlook.com ([fe80::b94c:321d:7ba9:7909]) by SN6PR10MB3021.namprd10.prod.outlook.com ([fe80::b94c:321d:7ba9:7909%4]) with mapi id 15.20.4755.025; Fri, 10 Dec 2021 00:48:37 +0000 From: Krish Sadhukhan To: kvm@vger.kernel.org Cc: pbonzini@redhat.com, jmattson@google.com Subject: [PATCH 2/3 v2] nSVM: Test MBZ bits in nested CR3 (nCR3) Date: Thu, 9 Dec 2021 18:53:33 -0500 Message-Id: <20211209235334.85166-3-krish.sadhukhan@oracle.com> X-Mailer: git-send-email 2.25.4 In-Reply-To: <20211209235334.85166-1-krish.sadhukhan@oracle.com> References: <20211209235334.85166-1-krish.sadhukhan@oracle.com> X-ClientProxiedBy: SN4PR0801CA0010.namprd08.prod.outlook.com (2603:10b6:803:29::20) To SN6PR10MB3021.namprd10.prod.outlook.com (2603:10b6:805:cc::19) MIME-Version: 1.0 Received: from ban25x6uut29.us.oracle.com (138.3.201.29) by SN4PR0801CA0010.namprd08.prod.outlook.com (2603:10b6:803:29::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4755.16 via Frontend Transport; Fri, 10 Dec 2021 00:48:36 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: c6254542-8f7f-4525-a1f9-08d9bb76cd01 X-MS-TrafficTypeDiagnostic: SN6PR10MB2942:EE_ X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:6108; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 7xIIRsdxxnfIuaIl+smRiC/Ql/V9DDgkRgvccsIZZg7TBwn/DGrLgpavxhE4ceKYKQeS1bih9iminRaHwVY3SJO2LcZhYuy7qLhMzKV+sXmDRxS3Lz5udL2r5JjzJW51Rd3GqTyuSRWtg8YZXb43+2zize97pH8GTxANDFtkKCds7ROk1CpgwZ9yoAj4r3ltkOetBUO16UNxmcSc2Lwi4IqFGVtS6ca1Xvs5kqGJNP38Z+k8SQZDc1eCaPZxdA9Co1Iswf6IeBbO6g21XIm7oMhLX26H+H3bVmMQQkLPCPN4Dp/Tt+8Ydfc4U/1XZBdWI5eBMlkkYHemV4oRzNMt3t3JSfKbi8YiMtl28QESYwSSBpZNh2FmyYt9i35aOvkVs+9LLoibyRMS2/o76jsd1BJtQCAQZr2CtabVPyF2hInexuhJeJ3Di0e99mQivEM6jv0+IfVYxvCRKLkTE8L0oegVLOz8ZNHADXcdN0V23z0Uy0aZ+LDCQTtwOXVGKXKqm+DyFVRwkv5/f+nN04rAAomq3RyynX4qRmQfxsbyzH9LI2uQfiPB9+pzm/VoMwzYm/RbZkf4kCRKTe8fy5JuT2C2R0V5EYh/Pnp7K+417jlxYTT8M7apEJ10w41tl2UqwPlAB82jEbZ4ZhS+2x28VR1gogDwt+DncKKFRA2mfkjs4BTF3oq0fOFE4ekB2jwMSJUxu1sT7kElbSsZ4R5bvQ== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN6PR10MB3021.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(4326008)(8936002)(66946007)(2616005)(508600001)(8676002)(1076003)(83380400001)(36756003)(7696005)(44832011)(52116002)(5660300002)(956004)(6916009)(38350700002)(186003)(38100700002)(2906002)(316002)(66476007)(86362001)(6486002)(66556008)(6666004)(26005);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: co/DILm0xGKgEAeF/XzPcCU/gGsLFw9B8O4U1BNIvCHdkXwI88fBIKnnAHLTnGf7vsEJKT7dQM5Sqp5t1Opl7kq7OAm9T6DTfHPNOs9+tjdwIsOJtPUCgVZlilvNZup2DaQnm479iajAIb3A/wlEnPujT5/M/qgWNdrJ98cMJnrQwrG0fH4Rrl1pVfRBnxRiwLrklF6B+OgJRfD9QHs9wXSx74o36S3EOw3ecLk7u0wzajn3N2BdrA+NcMkA9SNYCcMKBJR+LveeY0pFZUbD4JlrrYt3D8GLDc7z22QRzmtCctXRnprNSB+f6KDaiIYP84WlzF3eHBWwb+CWVr0Jo5nQxDPUH/fUZfAGpDk0qA43tAG/7HMvBVruvF2ZoL4XQbxu8G6xuHnt2Q0h85cF+8a6cDcb3k9gGeH9G505NFNxo3teOP2bxtny51cC5sPvKFYpvNCNmn/QlkgyR0rPFdoquJp+EQiZy/xgp7j+NdhbqNdotMfdQ7aGLmSA+myxNr6WA4HSCgdve7rHfOrzhqD4yv/BM8/ImQRF3jA1u0zBZNp/O5XJ6Jw6xZwesWO2TxzPdB2DsbFnUIvAlizZr2nfWrDEPt00IpicJLDq0h9ZC/W5gOlSw+FFubSUhOkPFMIcy2vxSNkPEDuGRbPQDWKA9bdrGx4RwS+68tKuuePnG6SHVJJjIewzmoRFSidIwwn1bV+EJZb3l8n1zCNyQx0r5KZRZ+mOKpCmbyzHv+C5iAskxG/7Mvl8PkK50YhPxEc3Gi5qaYW6hcUNs61PKLh2KFk2kqJoQq2MFoQ9g1Tftt0a8ufsieiB7ypq5Do8+MwbBEdJ9vCLMxa1pv0EDwjhdpF9cuj/naJL2nl3J7hrKn+KeyoDM2yrAhtl8FnADsOIEYF4c3TtmKBCeUTgkDCtO93P6x/sCcOpRd/oLOE9CyqxWyQdNvWmzJcMLV24EF7cZvCJ7otb5wKZHM7ksFgMy67twQ+SagWSm/TAuVH3gCQkJ5qnl1/Fmj0wkIDBQy26HyR97P3hXt8W6RpljdyilP0waCns3jTfYs2Ztlc0DxTNTIJallhfDs2vUWM+gAbVGpK2fGPaG1IQbyUDDCUovwm2TaQOI4fK6mMiN7Fd2ld/tVJ6+WE2LfhL2JBn42F6u97n8bCOtUwuaOJMCtPOciIGg0npK9a0SoSSg3UkJZLFfHk53KS4gLjZ0WAc5OH/9FIxEbBJLiZwKxEyl27sqG/XiHUmm+LyD/cUThFmdLYdwmw+dzVH9j9hM0n1tLrNUCnHf9GV1pxKTjLl7lmtClNAOl9cvKBGUbYc2j/9TxDax/9DSgB/ZTzjTmne5pIFeqSKBfUmfOs4TFgb97lDs88sv2W5uAwO6SdIraqdjiPECB9aLvjJkBQrFu8VzdXPy3dS6jPGv89T2xqntSNJAqfPE3BwK7stoXt6X3pM4oxhAVMaQof8mbzFXilbxiBHQf//JTnj5nmLMyNcT1YiMNmcdktCV5BTy5F+fZC/e7CHVmpEM1NCGAP6B0SaS9AetOusWn44Y9pv285r3giXjKvMQ/uBtI5MUJlicscvhj/r1NYwWa4kQyR9rds2bk9jJDAE0YVEoffPWCxjUJRra6gjfsnEqdkR1fM01gZXGChCnDnU8MYv4i/o6DeJO4jPgjlTJynZjRmuaplYEg== X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: c6254542-8f7f-4525-a1f9-08d9bb76cd01 X-MS-Exchange-CrossTenant-AuthSource: SN6PR10MB3021.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Dec 2021 00:48:37.1013 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: RuOztHjI9P8drMAZlRqVrqbf0aufKq8zVqLlW8KenxKAaCnhCM6ZtGBEpbycPuxSJ4os88QK/4kJSSmYPe08n4IfSkwYQM7o/Y7Zsc9dI6E= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN6PR10MB2942 X-Proofpoint-Virus-Version: vendor=nai engine=6300 definitions=10193 signatures=668683 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxlogscore=958 mlxscore=0 spamscore=0 phishscore=0 bulkscore=0 suspectscore=0 malwarescore=0 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2110150000 definitions=main-2112100002 X-Proofpoint-GUID: aG-gS4y2T_n4U542uLWMqsG0MAlm5JvR X-Proofpoint-ORIG-GUID: aG-gS4y2T_n4U542uLWMqsG0MAlm5JvR Precedence: bulk List-ID: X-Mailing-List: kvm@vger.kernel.org According to section "Nested Paging and VMRUN/#VMEXIT" in APM vol 2, the following guest state is illegal: "Any MBZ bit of nCR3 is set" According to section "System-Control Registers" in APM vol 2, "All CR3 bits are writable, except for unimplemented physical address bits, which must be cleared to 0." Therefore, test that any bit in nCR3 that is set beyond VCPU's implemented physical bit width, results in VMEXIT_ERR. Signed-off-by: Krish Sadhukhan --- x86/svm_tests.c | 42 +++++++++++++++++++++++++++++++++++++++++- 1 file changed, 41 insertions(+), 1 deletion(-) diff --git a/x86/svm_tests.c b/x86/svm_tests.c index 8ad6122..4897a21 100644 --- a/x86/svm_tests.c +++ b/x86/svm_tests.c @@ -2183,7 +2183,10 @@ static void basic_guest_main(struct svm_test *test) vmcb->save.cr0 = tmp; \ break; \ case 3: \ - vmcb->save.cr3 = tmp; \ + if (strcmp(test_name, "nested ") == 0) \ + vmcb->control.nested_cr3 = tmp; \ + else \ + vmcb->save.cr3 = tmp; \ break; \ case 4: \ vmcb->save.cr4 = tmp; \ @@ -2547,6 +2550,42 @@ static void guest_rflags_test_db_handler(struct ex_regs *r) r->rflags &= ~X86_EFLAGS_TF; } +static void test_ncr3(void) +{ + u64 ncr3_saved = vmcb->control.nested_cr3; + u64 nested_ctl_saved = vmcb->control.nested_ctl; + u64 ncr3_mbz_mask = GENMASK_ULL(63, cpuid_maxphyaddr()); + u32 ret; + + if (!npt_supported()) { + report_skip("NPT not supported"); + return; + } + + vmcb->control.nested_ctl = 0; + SVM_TEST_CR_RESERVED_BITS(0, 63, 1, 3, ncr3_saved, ncr3_mbz_mask, + SVM_EXIT_VMMCALL, "nested "); + + vmcb->control.nested_cr3 = ncr3_saved & ~ncr3_mbz_mask; + ret = svm_vmrun(); + report (ret == SVM_EXIT_VMMCALL, "Test CR3 nested 63:0: %lx, wanted " + "exit 0x%x, got 0x%x", ncr3_saved & ~ncr3_mbz_mask, + SVM_EXIT_VMMCALL, ret); + + vmcb->control.nested_ctl = 1; + SVM_TEST_CR_RESERVED_BITS(0, 63, 1, 3, ncr3_saved, ncr3_mbz_mask, + SVM_EXIT_ERR, "nested "); + + vmcb->control.nested_cr3 = ncr3_saved & ~ncr3_mbz_mask; + ret = svm_vmrun(); + report (ret == SVM_EXIT_VMMCALL, "Test CR3 nested 63:0: %lx, wanted " + "exit 0x%x, got 0x%x", ncr3_saved & ~ncr3_mbz_mask, + SVM_EXIT_VMMCALL, ret); + + vmcb->control.nested_cr3 = ncr3_saved; + vmcb->control.nested_ctl = nested_ctl_saved; +} + static void svm_guest_state_test(void) { test_set_guest(basic_guest_main); @@ -2557,6 +2596,7 @@ static void svm_guest_state_test(void) test_dr(); test_msrpm_iopm_bitmap_addrs(); test_canonicalization(); + test_ncr3(); } extern void guest_rflags_test_guest(struct svm_test *test); From patchwork Thu Dec 9 23:53:34 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Krish Sadhukhan X-Patchwork-Id: 12668485 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 37006C433EF for ; Fri, 10 Dec 2021 00:48:49 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234976AbhLJAwW (ORCPT ); Thu, 9 Dec 2021 19:52:22 -0500 Received: from mx0a-00069f02.pphosted.com ([205.220.165.32]:1614 "EHLO mx0a-00069f02.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234960AbhLJAwS (ORCPT ); Thu, 9 Dec 2021 19:52:18 -0500 Received: from pps.filterd (m0246629.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.16.1.2/8.16.1.2) with SMTP id 1BA0gn94025228; Fri, 10 Dec 2021 00:48:41 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : content-transfer-encoding : content-type : mime-version; s=corp-2021-07-09; bh=h8yzYBx/BwyPSNTIg/ZXA0xkU1CTLOq6yCxv5zKVayU=; b=vahjjrnzGsKShp6edPGk+Ksj7LFMTZ/lsP+oN6v97HUvAHr+7OW6HuuQRr2RtuBi/yIP tZ+rz2+CG8Y79ns1zUVco08CTaqNCyaIfY1CffpfRHqorvDnv0P1fatdubGKvaO8NrEr jA8973PyGQTdDXWMhrWRryPWJjzWV2G0pQr/xJgt8YKtuqpiQuxAEOeKAThZNp5emVd3 XOd/CbAdJRb94HkslPUn/HA/99lrlaqO1YckjODIWMJrvmZBWGRdDLkXx6QEdnpjWEF8 7kbdxDqxDNTQs3UpoIMBrq2B28IxBC2ZTH5La8MB+l/I2a5e2o4bMYk0j4OJUQDOzdsV 8g== Received: from userp3020.oracle.com (userp3020.oracle.com [156.151.31.79]) by mx0b-00069f02.pphosted.com with ESMTP id 3ctua7mh58-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 10 Dec 2021 00:48:40 +0000 Received: from pps.filterd (userp3020.oracle.com [127.0.0.1]) by userp3020.oracle.com (8.16.1.2/8.16.1.2) with SMTP id 1BA0knhJ186438; Fri, 10 Dec 2021 00:48:39 GMT Received: from nam10-dm6-obe.outbound.protection.outlook.com (mail-dm6nam10lp2109.outbound.protection.outlook.com [104.47.58.109]) by userp3020.oracle.com with ESMTP id 3cr1stefw3-2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 10 Dec 2021 00:48:39 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=aFQpJcvccq1RCF3gDQ2d8kJyBRAaLOKo05KTc6tWy71Qq/YcrPCsffqXDdFIJilaHsr+1SuajL0CvO6dRzDvciKk5GRW+HIBaD/Z0CiBgOwR0kXa7hQ7uzPv4y5iUj3qLg+dSTe/6rNZkcYAEf31LWQY8SexnFHeNFOImGhdSkNLZJ2fibk6H8sPy7qNCkOWuEyRfjXpFiCZAT7esqRXlS5x05MK19auVbFzXtLYlrgAlEZxwQM30hdvFSxFDaT3Adt2Ka+c5jTRaekJo+wW+EHr4OXBHdJAOVji1/wc06UKw46OOZWkGHLnqWTh7+TvUIuq6bOxqMsulDuB8TUfTA== 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=h8yzYBx/BwyPSNTIg/ZXA0xkU1CTLOq6yCxv5zKVayU=; b=mvEJyA9czRpu7KeGmLqhYhke7ULHfK3zZiIe4udpU6ZGHg7QTjc2c/zSsbuNg3Z19TSyCMdQ6/ns/VF9VrZ233p4K/LvWcVSGUqdVDN3t0UgR8T7ZTiybfXF3yXl8Qi/8vO12gkdFgWt0qdBwXTHsxTQsTLK/tp0n2sW8ThPmcgyhMfoFJ8M/+KTAa3FZfninOEjyVNp+ZXz4RZzSp1uUvlnheuYZVL1XWuMEOzPm7V2mjipFbQgurjjrTGOt3HymvXTjDrrEGRLknrP4Hs7Lh81ze8eyuQnFp0Fr3Z9zqo+S53mVvYw5IXgcnl9wweBZNYRgbzrd4hY12gRTadxbw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=h8yzYBx/BwyPSNTIg/ZXA0xkU1CTLOq6yCxv5zKVayU=; b=WwtLdRzCrA7HMnWGyALhTGEjMVFZGkqJHUwkCjJr3veRKt8hWinIBPUsUzCZcK1j+2HGsoHHoc4e0e6TF/SGDWFGPScLWJZL/zcsIJydnqA/IGkX7BogpP+SioKkK24d1XOhX/sfBxNU1dfhLVnlFCmglDmFIWU73T4ujfnIlhg= Received: from SN6PR10MB3021.namprd10.prod.outlook.com (2603:10b6:805:cc::19) by SN6PR10MB2942.namprd10.prod.outlook.com (2603:10b6:805:d7::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4755.21; Fri, 10 Dec 2021 00:48:37 +0000 Received: from SN6PR10MB3021.namprd10.prod.outlook.com ([fe80::b94c:321d:7ba9:7909]) by SN6PR10MB3021.namprd10.prod.outlook.com ([fe80::b94c:321d:7ba9:7909%4]) with mapi id 15.20.4755.025; Fri, 10 Dec 2021 00:48:37 +0000 From: Krish Sadhukhan To: kvm@vger.kernel.org Cc: pbonzini@redhat.com, jmattson@google.com Subject: [PATCH 3/3 v2] nSVM: Use VCPU's implemented physical bit width to genereate MBZ mask for CR3 Date: Thu, 9 Dec 2021 18:53:34 -0500 Message-Id: <20211209235334.85166-4-krish.sadhukhan@oracle.com> X-Mailer: git-send-email 2.25.4 In-Reply-To: <20211209235334.85166-1-krish.sadhukhan@oracle.com> References: <20211209235334.85166-1-krish.sadhukhan@oracle.com> X-ClientProxiedBy: SN4PR0801CA0010.namprd08.prod.outlook.com (2603:10b6:803:29::20) To SN6PR10MB3021.namprd10.prod.outlook.com (2603:10b6:805:cc::19) MIME-Version: 1.0 Received: from ban25x6uut29.us.oracle.com (138.3.201.29) by SN4PR0801CA0010.namprd08.prod.outlook.com (2603:10b6:803:29::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4755.16 via Frontend Transport; Fri, 10 Dec 2021 00:48:37 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 17b42760-454a-457d-d770-08d9bb76cd59 X-MS-TrafficTypeDiagnostic: SN6PR10MB2942:EE_ X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:5516; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 14hvIDIlpAe9gJfAbJerIvKu64Q7q8+v5BrTRs3+q4bWTu8OfVFgOPbVngXN1AjqpsgPtgg1c4WGHO3stHLde5DqpYRA/K3evfOhzimhllfZZhjVrt0KIoa0bfkswQH6vGqxmBDjdh/LiuCWGwWM/QLr/IsEN1SDCQjMaYM5AdkeFh4T3mLnC8IAsnYi+0qS0Y2KkFcLQSZLtnODm8l4IdoZBezK6AFXPqm+tmOdIyhRYtzrVWAn0Y2UHVMefvpFL9G/DfC6iXTJFqZ8cYWLk2vMnOW2sRlHAKhXZXOnxSl8k0mNc/2dOWG2vUvWGxtihaR0JH/yZZ0uKPWL3Jn45lD91iFNSTwH5c0vn2uBil94+qUv0tl8H4V3EhTAEXnP+25cMcY8n8Hdc60JAALANzwXrOea1VVNtHpIzz0Z9NSSmOfpt0boDHy3pqcMG357566q8S12tCV5B345VwaUp075v60v2b327JS1T5HsoVcXtTeI4/KmdN9QdyHsfTStD0/FBG08Yturmx1XmNB9GN8YpqWD9R1R2nSi5hVw+K1iyi6z82e5fx8Uk8V7b1p3Uz6RNJcL6fVHuhl5PxWM7xAcVFegQfGDEMtRQVbaKM5smv3Kiqy2FeDN9rZhGzuL6hIf2fP4QS8fA1KEFp9ibNclcqaqgXIubH9410efg14AP6VsJ5YoTuWU6JVC6GG1U9d26pFX5RzJxqZBBiT45Q== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN6PR10MB3021.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(4326008)(8936002)(66946007)(2616005)(508600001)(8676002)(1076003)(83380400001)(36756003)(7696005)(44832011)(52116002)(5660300002)(956004)(6916009)(38350700002)(186003)(38100700002)(2906002)(316002)(66476007)(86362001)(6486002)(66556008)(6666004)(26005);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: S3+u7MnQ1Y0hnKsN+sbF2MEzAqg2oxMXF1za5HR0E2JORppZ7DdFTN1DLcdoTZLLvv0ycoUL+y2F4mPaTpFMUCjyFVP4FgwxEJmVMj0rrNuG7Iqc6whWZ5qSKYjCr+oAIHOhFtIY6csZW4+QblheCIdEZNw+Zxzwd2xGlfM3Yj2rt6KtE5hgVLo9oZF0U6tg2y9HtLoCl6YuZ7WmSniaAa5jQWZnXl5Uewe2NcIml3A1D9/7bfGqzn3IV1TH3zfI1SuKFb2aMiC4dLTLDzLenILpU2IPSOgykLBx3qKDr4nCvNDfwK7bqml1DTloTpg+uRHa/i1ymu16FwAmIJD5/KIZu+kCuzYhMdA38KiefKBXkItQX6xvXVvRLrDq5BH795T+6FYzr8CTHqGhwaSeUvNUXi+LfNYusOXju4d1kYKlzx9/T2CxLpqOq0UTgCt35GyP1UwJ2bimdIlOIcsK891dObjZlWCaEdY0OX2lplRSzMsCWxGcl6NeQYQdsAiHpck/gEH+qSoYvw633P44pUILKezOOraU703k8nFBWy8WXf/HeOqXJeKDwZYAP3rNPdR326zKQZMP8LTT9eC3JKgBxKWydBHeT2Tm2G9S/5qmoi97TOZX4+540wWQ3MyKW7Q00/5Q07Y7P1rky+u9qDmK3HAzFKaWB/yPvDu0r/8avXVeG6gARKEeRhGRx7QgW8af64ocW6xz7EPICShiVmD6r6IRQkYCrXLz1vLivhBkPZ/Zz//qmCe2++0rELKMJy8GQkj+tLk2Tau/0GJkdnzM+c90ds9DtRP3kXZ5A3tPjP5wfV86ur2oln4Egp/1GLT4j+pApz3K4VjiLzXU5F5Xu8R7KZMm+sUvdpBRNFsEYmyrVXBygveC197h1eeuN/DhhS7yLag8W5f591MS3augRgiUAC1UoRJEETfyZNesiMbaRKYnV7G9HcTve1MNL/x3D7jmtfsCyc5zHdO0qVNuKya6ew1xLziZL/An0cK3bUq4zjxf3uOu/w6N680Cx4p71FiPAKy9uttVhdQxhuRxGlAH+ujm2trFTU15msYBGpKD38W5fOUZMVGGS+dpRYfFSLq8pI4lX1geJwWiQFr7jhyxdexAvKCtfBybzWavsNk6HwzIOwJd+oZ8KoFiF4wNhVJ4lwPl8Pm53isPBdxRt57JRWD7CtGVOM2J2BJ3gYjaGxWtW2V2tDY24vIZaNyC2UEJjG1wv1eS2bVDi2t3Mc2VOZUaDTia6G97g2O+D4/d2RvwzekNpPWO/eRdBLwoVGC+FFSlh7pfnK+4kTRFZAO47Lb0+HHJLZNNIUTtovsdyqiYyiBFtsaa7lnsyC4M2y8Uul2EThKkazLoVizVWQE7KX1taHy87702vwQfolvKrp363nKEjee1zs77nwwUNzwmq4nFVhqu8aPVykMyRGgx+3Ak+pzu/6O3IQkBG1JWq1cheijHVz4hBLJ7G7TTC2RIjdTFxJOVKH8DZ5FTUqCNEdprmg/bCA90y1gebFPoyIwzhx/wsdz43UBe3o1NDM5OQQ5g7XqvoQ3vIVubFqeYjrrAdr3z1JeoDyiu3jGUKBb5hQCcSt1a6mPYQCQjUnFDQLVvHQCROtm7MMNesupJTMMYSrmaIfodVLxvDHManBknKc7DERWyLMfrcYgYB1ijbappRGTEDL4w/w== X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 17b42760-454a-457d-d770-08d9bb76cd59 X-MS-Exchange-CrossTenant-AuthSource: SN6PR10MB3021.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Dec 2021 00:48:37.6950 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 8mxRzLf69meQbO47YZLqMvPdZuBZqTEE7QFPk7a8VDvyR1/zmXiKJ1yn0yOOZZiZMIobapLY2r8DRAquD7yP/N3Pd4T9oEHSJf1r1PrDuLw= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN6PR10MB2942 X-Proofpoint-Virus-Version: vendor=nai engine=6300 definitions=10193 signatures=668683 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxlogscore=999 mlxscore=0 spamscore=0 phishscore=0 bulkscore=0 suspectscore=0 malwarescore=0 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2110150000 definitions=main-2112100002 X-Proofpoint-ORIG-GUID: ZbUKKr7ZPIkZhFsSAYeifAEuqthGEanr X-Proofpoint-GUID: ZbUKKr7ZPIkZhFsSAYeifAEuqthGEanr Precedence: bulk List-ID: X-Mailing-List: kvm@vger.kernel.org According to section "System-Control Registers" in APM vol 2, "All CR3 bits are writable, except for unimplemented physical address bits, which must be cleared to 0." Therefore, generate the MBZ mask for CR3 base on the the VCPU's implemented physical bit width, instead of using a fixed MBZ mask. Signed-off-by: Krish Sadhukhan --- x86/svm.h | 1 - x86/svm_tests.c | 7 ++++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/x86/svm.h b/x86/svm.h index f74b13a..cdab44a 100644 --- a/x86/svm.h +++ b/x86/svm.h @@ -349,7 +349,6 @@ struct __attribute__ ((__packed__)) vmcb { #define SVM_CR0_SELECTIVE_MASK (X86_CR0_TS | X86_CR0_MP) #define SVM_CR0_RESERVED_MASK 0xffffffff00000000U -#define SVM_CR3_LONG_MBZ_MASK 0xfff0000000000000U #define SVM_CR3_LONG_RESERVED_MASK 0x0000000000000fe7U #define SVM_CR3_PAE_LEGACY_RESERVED_MASK 0x0000000000000007U #define SVM_CR4_LEGACY_RESERVED_MASK 0xff08e000U diff --git a/x86/svm_tests.c b/x86/svm_tests.c index 4897a21..8a3f2e9 100644 --- a/x86/svm_tests.c +++ b/x86/svm_tests.c @@ -2317,11 +2317,12 @@ static void test_cr3(void) * [63:52] - long mode */ u64 cr3_saved = vmcb->save.cr3; + u64 cr3_mbz_mask = GENMASK_ULL(63, cpuid_maxphyaddr()); - SVM_TEST_CR_RESERVED_BITS(0, 63, 1, 3, cr3_saved, - SVM_CR3_LONG_MBZ_MASK, SVM_EXIT_ERR, ""); + SVM_TEST_CR_RESERVED_BITS(0, 63, 1, 3, cr3_saved, cr3_mbz_mask, + SVM_EXIT_ERR, ""); - vmcb->save.cr3 = cr3_saved & ~SVM_CR3_LONG_MBZ_MASK; + vmcb->save.cr3 = cr3_saved & ~cr3_mbz_mask; report(svm_vmrun() == SVM_EXIT_VMMCALL, "Test CR3 63:0: %lx", vmcb->save.cr3);