From patchwork Wed Oct 4 13:13:44 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Brijesh Singh X-Patchwork-Id: 9984713 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id 1F9D360365 for ; Wed, 4 Oct 2017 13:25:59 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 0FF6428405 for ; Wed, 4 Oct 2017 13:25:59 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 04C4828488; Wed, 4 Oct 2017 13:25:59 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.9 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,RCVD_IN_DNSWL_HI autolearn=unavailable version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 77FF128405 for ; Wed, 4 Oct 2017 13:25:58 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752236AbdJDNZr (ORCPT ); Wed, 4 Oct 2017 09:25:47 -0400 Received: from mail-cys01nam02on0084.outbound.protection.outlook.com ([104.47.37.84]:31550 "EHLO NAM02-CY1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1752074AbdJDNOp (ORCPT ); Wed, 4 Oct 2017 09:14:45 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amdcloud.onmicrosoft.com; s=selector1-amd-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=KYvjV+XdHsubGt+39+8HZdbDSgTSsBg9qoU+AjlrY6M=; b=eFYEQxpxfylf4gm3QpdOPPDsQW5LSTRkEIUOAGMLpaKi2jju+pvyKGh1d8HIe559Ea+wtCkzMFxXNJ1ujckOaWE2d3m+myrPP2MyifYQd2GZ3LigWvccd4Bu6CDkDvmPHcn3jkyHsCHBWE/6y8cOj/yDO8VQhF8myAonO9Zvvp8= Received: from ubuntu-010236106000.amd.com (165.204.78.1) by SN1PR12MB0160.namprd12.prod.outlook.com (10.162.3.147) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.77.7; Wed, 4 Oct 2017 13:14:42 +0000 From: Brijesh Singh To: x86@kernel.org, kvm@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Tom Lendacky , Thomas Gleixner , Ingo Molnar , "H. Peter Anvin" , Paolo Bonzini , =?UTF-8?q?Radim=20Kr=C4=8Dm=C3=A1=C5=99?= , Joerg Roedel , Borislav Petkov , Brijesh Singh Subject: [Part2 PATCH v5 03/31] kvm: svm: prepare for new bit definition in nested_ctl Date: Wed, 4 Oct 2017 08:13:44 -0500 Message-Id: <20171004131412.13038-4-brijesh.singh@amd.com> X-Mailer: git-send-email 2.9.5 In-Reply-To: <20171004131412.13038-1-brijesh.singh@amd.com> References: <20171004131412.13038-1-brijesh.singh@amd.com> MIME-Version: 1.0 X-Originating-IP: [165.204.78.1] X-ClientProxiedBy: MWHPR2201CA0056.namprd22.prod.outlook.com (10.172.59.30) To SN1PR12MB0160.namprd12.prod.outlook.com (10.162.3.147) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 0b06b0ce-3ed9-4753-a2f7-08d50b29e0ed X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(2017030254152)(48565401081)(2017052603199)(201703131423075)(201703031133081)(201702281549075); SRVR:SN1PR12MB0160; X-Microsoft-Exchange-Diagnostics: 1; SN1PR12MB0160; 3:ez3I1JzM+8gg30N2egPkS6OiEoO/m8UPzJ5rJ+Xe19c80sDrfrOI/EZXkamJ+diNpI+wZqLOXQFABaCyPszhwI1fibKfih3/jIYlZ9QuW37yigLireMGkxh4dXsLjE8FmKRR5Jhoa8LAClRPf0QTGfHoYpZg1N+KqP+cFQkSDcutTmhR/Ynw1mUhyyAs4tASgCwzqeQQTm4LqoMGBzEHOPj+Sq1L9EJyF/Xs0Tg3OEPjUAajmT36fXP3y8/D5qSP; 25:JeVJkc1aopYfYyJopmPSXSkS1nr1lj6A1NK2KI/K3873EHGsJvtNedHfY4OVXFjzcQBvbv1OB+Q9N0Rgpe8MvvfytV4AU+7mwcj4P+1B1e7tc+Iwa/tiIENCATNKYYZRBURZi+So/YDHqRTu7IWDA3/AoRmVJIrly6AzFNl3oGU6ajOoneICI3HkAn59gbql4FA5GtuB56FjaQoV0raGqSXkIrHBqVQOhj8Isv4VUVFHfpnlI9OElhe7933l7pYt6kTbZiKcBaviPllia/q3w7jCsPeI3fi/Ss8VDnEg6qxpXErYnU32My/WJgdFnJQwVAc12O6cp8TYaM08FWXLmg==; 31:zmknfT64crskxbGhX8Xh8ub1KLu9yYTL1SC4r33U5nPDlZja5gz4HaXcnlpC/oYKsj8EXH3Vnv868JylWlHExNrmXwrSII6BBV+06/1EiUP4hbn37EqtmNwOxNq1BeBukFeKWuxo84ZGxH0fZXVNft5BP8bWVZMCHJ09WnY7Z7uv5tuRAi4d0NKFL3U9dcIXqTifrjRcDWX0e6TEwS0ZOTXyQPntYivC0GT5IG9+2ms= X-MS-TrafficTypeDiagnostic: SN1PR12MB0160: X-Microsoft-Exchange-Diagnostics: 1; SN1PR12MB0160; 20:M0wVXnH+xPbL51qrbvZqoRi8AhfDKv44UgLT2nIJxmpjvV/pR0xFiSWfj7PzZMd5VPpXW4tOELA6NiaZjVM8EkoPX6CAnmDvdCqwYa9hA6xMXa3/hpLuOXZ4BRdc30ExHKxVM06bELoOdfTnVvkWeRDBFSDI80cFkVUbClmzieq76sfQYXgrDo6ekvKx+3sVmm4gZ4ifqGJJw+0TOwLiSXa4c/8hUEfbRhR3BdbeFmSwiEoR1veVhyXVvYiCyJb1qfx2Om5Dgg0yIEJpIlUbEfLw9mwoBPxIKap6iQg8DNwPZ6KTSLnpA5RlP1SA2NJTKdypHzbr/tFZYHFthnZs9uXormFrpIozaILRRgTdXyOoVoLlQe8afVk6h/y892g4RVAmXQOeHr13jZO3pUnE2aqbqpfHjdBYhtPnS9zEAtMBkegCD1L7Rzmj40xkpPTAMBDWBcT1cM8a4Xnf5C0ACqeafA4IDACu+c2n0HHikTPoWwVpeVa2V4ygn/aHPxd1; 4:C8dzPx5OlqpJgOw1uziP6XLHn5UqpIkTtgnwqE1NGN0RNd+aFFcrVgaKvYopHRob4iSohtXg2evqORvswhhG4k/ydP6eepAy57qGljuGfPydex51qc/UUSMGWPR94Ms+r++fQ7QTEJGQm3GnE/89na+ZuFkEAg1r5VobFPifPGCNPAGxPD5XUOQ69KyyRNCA5ba2TRPNWHgfzPvhW2/sgL+y18RZ4BmOw9jQWfI5sP4lkxPAk25KtBsXdb7QOQ3yW2ocP9aL0AuDfdubLh0d1j3c25AXMlRgPsHouKhnPZDoHBdfvtRP2pJM2gK27jJi X-Exchange-Antispam-Report-Test: UriScan:(9452136761055)(767451399110); X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(2401047)(8121501046)(5005006)(100000703101)(100105400095)(3002001)(93006095)(93001095)(10201501046)(6055026)(6041248)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123564025)(20161123562025)(20161123555025)(20161123560025)(20161123558100)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:SN1PR12MB0160; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:SN1PR12MB0160; X-Forefront-PRVS: 0450A714CB X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(6009001)(39860400002)(346002)(376002)(199003)(189002)(575784001)(97736004)(86362001)(23676002)(76176999)(53936002)(50986999)(1076002)(6116002)(3846002)(478600001)(36756003)(47776003)(101416001)(33646002)(6486002)(66066001)(189998001)(68736007)(105586002)(53416004)(50466002)(4326008)(54906003)(8936002)(305945005)(2870700001)(81166006)(5660300001)(81156014)(25786009)(2906002)(8676002)(7736002)(2950100002)(7416002)(50226002)(106356001)(316002)(16526018); DIR:OUT; SFP:1101; SCL:1; SRVR:SN1PR12MB0160; H:ubuntu-010236106000.amd.com; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX:1; LANG:en; Received-SPF: None (protection.outlook.com: amd.com does not designate permitted sender hosts) Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=brijesh.singh@amd.com; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtTTjFQUjEyTUIwMTYwOzIzOm96WXNxdjcrd3g2bnVjeVFEQnhwL2tlR2pQ?= =?utf-8?B?YkdOWkpkdVk0OFQ0RXJTbk9RZGlYQzg4RElsWWtWOUFka0RnQWZCNHhEWUxu?= =?utf-8?B?NGtOTmZEQWZ6SU1YTW84NU9ZeEhYZVQvVFRucXRqNDFidDlqM1Azak1JVlRX?= =?utf-8?B?L0NlUmh1azM3QWM1SXExSnFLem1qeXRQajdRS1c0QkpoMnFwYjdUZGRabEkz?= =?utf-8?B?blJ5UGV0bmNNZ1ZiOFI2R3FHTmdhK0M4ZmtGTThXNGFkK2swcnBXVHh5cWhj?= =?utf-8?B?aUNmT21vMm1KMGo4a2JGZnlRcUpjYi9wS3NFWFQxTm95bUdnS2ZrZEx6amRz?= =?utf-8?B?TDFiL2p6OHhEeFJpSTQrZnBIbnVPOE15VnhoOWJRYTlZOE1lOUhtRHEyUy9i?= =?utf-8?B?YnJUNHZtMUFldUlPVzBOLzdaeU9tWjQ4TDMxZ25ISFJRSVhvdGlxc042a2gr?= =?utf-8?B?MVBzWlh6VjduSFJ1amFsUzhiMHN1VU00NDZYcUNEN0NRYTMzN25NVUZ0Zndk?= =?utf-8?B?RVp0TFhYRzVIWnFUOEVPdUFFNVNONHU4Q0NtSVhrNTl5K1JQZEZ3TGF2L3B6?= =?utf-8?B?ZEVlWFh4TnRCQmZweUhVNkgxZ2ZVUmdNeWQrYWx1eTBuazVxaXNNUWdiL0sy?= =?utf-8?B?S2lEcEFUbkR4M29wdlJXTnNCQTBCY2NNL2pETlVWTXI2MFRWdk5oUjY5dUo2?= =?utf-8?B?N0RNVitXdzl5MzFRUkthK2ZiNkhhaHRtMG02Z2VyNFRyM2QwMi95ZWRRZTRR?= =?utf-8?B?UWtUalgyL3R4S24xbTBaZ24wVWNYbzVVOHF1aEQ0T3VMUm1VRGtBSElTTzRy?= =?utf-8?B?WkxrdXR5STZ4Nit2ZGt3REJlanBWZ0hrVlVWcmdydklka1FEK0RRS2dhelZX?= =?utf-8?B?ZnpQM25BUVl3bUQ0SWtkSStGbWRYL0VYNmJWcmNXemRlcWlzRDNYRjA4ZFJm?= =?utf-8?B?YVBDK1ZpU1JkS1FaRi9XeUVaeHIycG1MdXBHaUFPbXI2d3pvZmR2UVJURWNs?= =?utf-8?B?YVErZTFDTWdNMSs3ZlM5U1lZUVhZVnBPYmRpVHM2Nmp5WHE3OHdqbm92RS9a?= =?utf-8?B?cFBuZ3pNcTZma0N0NWdndFV3V2FKbHV0QkNEcHY4VGRzMUJsTzkvWERPUzZY?= =?utf-8?B?YlFMSVRHWkJ0OWQ2Sm4vazhhbmJEZzNaRTdVZkg4WWg4ckZCdUpTMk8vbkZD?= =?utf-8?B?aG9SVWVEQUQycWlKSVJuY2cxaEpNYzU1UUk5Ryt4TzF4R2FzVWRRK3Vjd043?= =?utf-8?B?L2hIa1VBNi85dnllNnVGNnVtaHRuTUJXazdwSzdZSEUwMVBBMlF2K1NaYUFp?= =?utf-8?B?MXByOWpYbDN3cklCaHFqRjZ1b1Y0Q0VWOVJ4UTUzY0RIdS9oQzFEVXhIM0sw?= =?utf-8?B?WEVqRGQvTTRhVkVrd0pWdGRVYS9jeGM0UFVybGZQY2dMenp1a3ptU01YVWlr?= =?utf-8?B?VDhNd1oxWHRFL2Qyc2VzSkMvTitrb3pIRVdKcDVCMDBkeUR0bHB6anhNQXo3?= =?utf-8?B?VitXdz09?= X-Microsoft-Exchange-Diagnostics: 1; SN1PR12MB0160; 6:x1qQvodcg9uwPbLSvViQxm8cIvzWpGisZ6YR1RSoRLhLmypmpzROQE5SjWOh+EFbTU0eP7CR7W8vnsFwD9cpctleZ9KYeCtSf7Z6sh5Li7M5Xcf2z9mH+WnN5HVJjOymCk9iLEb+ZgfuWp0aPGaf8dfoVXdWe2M0aIzwwGLhsUi93remggRkouhw9jYc+PLdpMwWUuA5iAemicg81v8qXV3Ut7C17oOLx0zv8np2zcYDXLZAFTyoqDHD/YkXD9rGmEbgMY2dI8poEnCfLV0DANJrUYERAGsVNt3IOCD1DIiBXBYpp+cO9efg9tAMlOGCO0S+jc+PcNH659YRjrz6Cg==; 5:hu9O+RmIwBtPtc2Rqcg0/VdxJW1VJNWyscJw9BBePotj/u+/W43uCYh8g2YTSZZwKGjdKFD11iltPVzEqa92N1ulx1O8r4eDc4+05RuN3S5mbs57xe3ledBvxbNM5YRA4L18hyT1P678ExHoi70TmQ==; 24:mCbnFMByLA+iIgJI0w44gPIExUHaDEnRQXeMFmz9rf6UUUn2bE3hNg+HTAMLcT/N0okmi0JgGrw9wtBQ+gEmTkWieBplMx5QSipLY1eyPgY=; 7:4pwe+m2qoD+t5Y++lEMuOqU/kwbAhyNKjG38L+UiLA/h7sXxCmGch3BbLMrfaboW8DfNy8SUZwTeFdM47ubZ+oU5XYKE2Ahs1uS/MHGm6PHBN0CrFUfeU4EMsQAZZ7IpMdcIc/bJSI62HtHFGeTQRFpRtKSsHbNZ+RXwECp/CaOKDVg492cCFGnzMGD3biHykQX2JFX/mynBvyp+qITsWEOUKd1UGJ2tnjd4otbDrZA= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; SN1PR12MB0160; 20:KYUsN8U2u40GrALt1HZSnakE43DDFvb0qyoQhW3bUtoPt8dBW/8S/xf2yzMra9SvYvCyN1V4qevbdJO87ErUeecPncfm+qwlkzb29RgCAYD8fN6q1Y1toBCg1jLe4yJhCj6xuDjVy1fTJy+WIpZ4e7vBiR0Xl4bVosJBY8MkMd/gG4WrmhdjBmTMg+v7F/wlNHurXoRJwtO5IsivjU7VmmzodOpI3NBnDy6vFDa+iMCzvH6eZd+9GieaHZw+6uez X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Oct 2017 13:14:42.2247 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN1PR12MB0160 Sender: kvm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: kvm@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP From: Tom Lendacky Currently the nested_ctl variable in the vmcb_control_area structure is used to indicate nested paging support. The nested paging support field is actually defined as bit 0 of the field. In order to support a new feature flag the usage of the nested_ctl and nested paging support must be converted to operate on a single bit. Cc: Thomas Gleixner Cc: Ingo Molnar Cc: "H. Peter Anvin" Cc: Paolo Bonzini Cc: "Radim Krčmář" Cc: Joerg Roedel Cc: Borislav Petkov Cc: x86@kernel.org Cc: kvm@vger.kernel.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Tom Lendacky Signed-off-by: Brijesh Singh Reviewed-by: Borislav Petkov --- arch/x86/include/asm/svm.h | 2 ++ arch/x86/kvm/svm.c | 7 ++++--- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/arch/x86/include/asm/svm.h b/arch/x86/include/asm/svm.h index 14835dd205a5..5e3244724c9d 100644 --- a/arch/x86/include/asm/svm.h +++ b/arch/x86/include/asm/svm.h @@ -145,6 +145,8 @@ struct __attribute__ ((__packed__)) vmcb_control_area { #define SVM_VM_CR_SVM_LOCK_MASK 0x0008ULL #define SVM_VM_CR_SVM_DIS_MASK 0x0010ULL +#define SVM_NESTED_CTL_NP_ENABLE BIT(0) + struct __attribute__ ((__packed__)) vmcb_seg { u16 selector; u16 attrib; diff --git a/arch/x86/kvm/svm.c b/arch/x86/kvm/svm.c index 0e68f0b3cbf7..8186b8d7c469 100644 --- a/arch/x86/kvm/svm.c +++ b/arch/x86/kvm/svm.c @@ -1296,7 +1296,7 @@ static void init_vmcb(struct vcpu_svm *svm) if (npt_enabled) { /* Setup VMCB for Nested Paging */ - control->nested_ctl = 1; + control->nested_ctl |= SVM_NESTED_CTL_NP_ENABLE; clr_intercept(svm, INTERCEPT_INVLPG); clr_exception_intercept(svm, PF_VECTOR); clr_cr_intercept(svm, INTERCEPT_CR3_READ); @@ -2910,7 +2910,8 @@ static bool nested_vmcb_checks(struct vmcb *vmcb) if (vmcb->control.asid == 0) return false; - if (vmcb->control.nested_ctl && !npt_enabled) + if ((vmcb->control.nested_ctl & SVM_NESTED_CTL_NP_ENABLE) && + !npt_enabled) return false; return true; @@ -2985,7 +2986,7 @@ static bool nested_svm_vmrun(struct vcpu_svm *svm) else svm->vcpu.arch.hflags &= ~HF_HIF_MASK; - if (nested_vmcb->control.nested_ctl) { + if (nested_vmcb->control.nested_ctl & SVM_NESTED_CTL_NP_ENABLE) { kvm_mmu_unload(&svm->vcpu); svm->nested.nested_cr3 = nested_vmcb->control.nested_cr3; nested_svm_init_mmu_context(&svm->vcpu);