From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933502AbdKAVQx (ORCPT ); Wed, 1 Nov 2017 17:16:53 -0400 Received: from mail-bn3nam01on0043.outbound.protection.outlook.com ([104.47.33.43]:12256 "EHLO NAM01-BN3-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S933175AbdKAVQq (ORCPT ); Wed, 1 Nov 2017 17:16:46 -0400 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=brijesh.singh@amd.com; From: Brijesh Singh To: kvm@vger.kernel.org, linux-kernel@vger.kernel.org Cc: bp@alien8.de, 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 , x86@kernel.org, Brijesh Singh Subject: [Part2 PATCH v7 03/38] kvm: svm: prepare for new bit definition in nested_ctl Date: Wed, 1 Nov 2017 16:15:48 -0500 Message-Id: <20171101211623.71496-4-brijesh.singh@amd.com> X-Mailer: git-send-email 2.9.5 In-Reply-To: <20171101211623.71496-1-brijesh.singh@amd.com> References: <20171101211623.71496-1-brijesh.singh@amd.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Originating-IP: [165.204.78.1] X-ClientProxiedBy: DM5PR06CA0064.namprd06.prod.outlook.com (2603:10b6:3:37::26) To DM2PR12MB0155.namprd12.prod.outlook.com (2a01:111:e400:50ce::18) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: eb17e6e2-8499-4a90-4fb4-08d5216dd6ae X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001)(48565401081)(4534020)(4602075)(2017052603199);SRVR:DM2PR12MB0155; X-Microsoft-Exchange-Diagnostics: 1;DM2PR12MB0155;3:TuLg/eFsHHtpSV7eSP9Up9GxJRmM2opwr8m9kvOoMn/zV42g2CDNpqVqMsG9XIh5UTbCFZPyvjXQ0aM1dpl4luhQhCgNYTD+dxoN0s4bH5vtwm9ehvttzOoU3Atx5yRJqLRLG1RDyggMTmQ70e9Vfl4XewvGkHdde2yQUeecpyxN14vZWxIdvNcATFJj7GyTqSpWnJnbha0lGD9u5d11+f0TnFz3ODAoAbS/LffpObUiLrwB3NSc0qJX6Z6JfUti;25:dy61CXMsirPRlnKI7hoLPJIm/w/x0ktSGHY+Vxs29y3MCkV+gCmJYLy8dpXLgmlcp12mdVg2jkmqe9dBGxCFz8NUSOjFTNZjHiZtLuNO+edL39SlQGi2Xe/IzREM8xVDPSODQtmLeIsMG6BXELFdCcEE63pl3dMOX3NmlqYyqQQrmyQmbcAhggZDB6fweRcjPik9AJuzE8IMvkUULQgMfnnF5hFAPkOQkEP5lKBk/zW3imAyeMIbKz5Kb5GR4Oy4NNjraYWan+II27ZESa8z7YwMgMk1aIAa4uaqDbu7Fn3iI8vYm03m5UrWp3mchUbRRWilYosbEDrtITMUiqYwyA==;31:YJSg0dwMCYYnclnJ9sgStXNAle1H+D4I34SZjMtalTz3sMVjv4E+c5x7aIDsRQyBzY7yoo7s+JfiZzdC6gD5vsQ8Xr3PhjwmTClTRDRZuRFpH+NodDfhbSgrlGFFyPV7cxbagZO3AfL+9ADVaYrKDQ4H6HUiHd0sQUcEihJjVL9ymk+1l1yZKzhQvyhyjKsPvM4cou/3OI+jrnuyzFygLUUhpocjOLtcDyCUX8DpRb8= X-MS-TrafficTypeDiagnostic: DM2PR12MB0155: X-Microsoft-Exchange-Diagnostics: 1;DM2PR12MB0155;20:ELMc0EkRqqSQGpzbvu7xbVO06aUIlrdvT5/u74J0cJdcWGmBF6/KVqJfh3KPFr5bxtUaWE6P46Z/ATa04thC+hMquTIoF52BUSqrXy+0sAbb6yhHpMqtyD7SbtGL0YNa4+hsyeLBI2/YzFkAVU5gW89LsA6XCZ2ivfeggKaIPEOhBk+BsaMzwNkBP13FiVBOqAwgKGjLgCNfUm57UBlri9W3aB82Gj0BVVMXvjWh6zqblN+sgqm/3jpVh92ka+HiMZ1XPQZucNXTxGDB+7pVdabIr1SfuyT5SxSI5vMyiL1zttczS+hh9pD0WPr7hxJapjoqsDP5SUKO/tEteoqEf8uQlaCqsS+0TwkyX0+y5y+7Yj8hL7dzbqR1vZ6Mvist3H2SU1Frtg/ZfETQtMsSGC+kR2dgLHFeVOgevQiJYhM/Il5N31KLAKMFXcxvoMFLVmJFB2DZ8x1i303s59d1GdUiMBtoZRdMKA3u/G+Bhq4HuFdOC/33kzV/Dc87mBJU;4:6p9em5uQxrR6ca2pylZJqx7yc209mByicBt8mbHzvspoH49fkpUs6G3UUPXC92POtYB6pfAja9tn64z03IUHYm6JI+UuAAlLJTr9logTzE9sxVso3aQ11+IKmrkAQrDd6x4zGCVBpYRthCdy/tbLt6l85qTmuLm8aIOy41ypchtjULOlKEJPHEa2sG8bsWKHia1w+Vq2HRbsUNSDLtf81w4OIwOMfCIrLlq6HCnBpVnHbO54JLMcHD5fpfFeGtDYipzDyc7effQK7AZaU7nEYrLS2HAv/0SrpDIdPXLW5L1fcGmL/Bi4Jfx5/Hd9btxVqC+euOcy/tEtPQYOF2UN+A== 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)(3231020)(10201501046)(93006095)(93001095)(3002001)(6055026)(6041248)(20161123560025)(20161123555025)(20161123564025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123562025)(20161123558100)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095);SRVR:DM2PR12MB0155;BCL:0;PCL:0;RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095);SRVR:DM2PR12MB0155; X-Forefront-PRVS: 0478C23FE0 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(6009001)(39860400002)(376002)(346002)(189002)(199003)(1076002)(6116002)(97736004)(66066001)(50466002)(3846002)(25786009)(4326008)(54906003)(316002)(8676002)(47776003)(36756003)(23676003)(50986999)(478600001)(7416002)(81156014)(81166006)(105586002)(53416004)(575784001)(53936002)(189998001)(106356001)(2906002)(16526018)(2870700001)(76176999)(33646002)(305945005)(7736002)(86362001)(5660300001)(6486002)(101416001)(50226002)(68736007)(8936002)(2950100002)(6666003);DIR:OUT;SFP:1101;SCL:1;SRVR:DM2PR12MB0155;H:wsp141597wss.amd.com;FPR:;SPF:None;PTR:InfoNoRecords;MX:1;A:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtETTJQUjEyTUIwMTU1OzIzOlM3Q2NaSUF6d0FERVlpV285aW80MVd2T04y?= =?utf-8?B?dnJZYUs5VWNBWXgva1FJTXFsTFhWVlpRVWgvb3Qwb1JwLzA3SDdHOUErY3pY?= =?utf-8?B?S2lJZm1wTEluNndHYjRjU3ZCL0dtV1RyTldaUUVXd0JtdmRFYlBWbzdsa3hC?= =?utf-8?B?ZkJKZytlWk5EY2NuMUFTWjh1cWhHSXpkZ1BtYzNwQ2UrTGZrbEtuc20vMExh?= =?utf-8?B?bVpkbitnN2wxTFVDSjk2dzlZVklCRk5iQld1MU5LMExWMEdyWDI1THRXNHZW?= =?utf-8?B?N2JVMHVKaE1MKytLbGtMWGxYSGN6NUwyQUZSai9zKzF1R2diZmx2TzFsbU1B?= =?utf-8?B?dmxrTy8vVVhDNmFhblJ3U3RYbUNqT1p1UW9SWjMvWnEwUWlkREdZN3RQZ0Zw?= =?utf-8?B?OVVmb0xzUWNXc2FkSG5KMENONXhuUEVSUjhrb1I5YVJ1L29OZXB3V0wvUEpT?= =?utf-8?B?bmNNNUMrM2xENFhsVFZIaWRlL1JVdEJDZitxdXNMYjF0aWhac1EweHdhYkI5?= =?utf-8?B?RVNBMWxIUjVGaG55bnJIbG1vSUxSclBIcVlPSmFEamp1c1IzNnVPTnR3WFBN?= =?utf-8?B?QmZsL2dmZEQrVjdMekt1azJOUUxjMkxCUTVPRG80djErVkdvOU1YSWhSWG90?= =?utf-8?B?SVhVZ1RtMTBxcWIwWW1sMWtpKzk2KzNOeHVQRk5lWmhqdkJKbHlBR0NJcU9y?= =?utf-8?B?RTR3My9mdi9WVDB5Qk9CaVp5ZWU1cXBtT0dFOFpzbFhrSUtjQUFYRGZuNXhT?= =?utf-8?B?NnpjUFJDUEJWN0p4d2RTa25Oc3ZPbUwwbmFqbjJLY01OOVU1RW4xMUtDT3RF?= =?utf-8?B?WDFPZnBKNzMvRStzQVB4emU0MkVleWl2dTZLZVJRa0U2YnVvN3NvdngzeVdt?= =?utf-8?B?R3cvVUI1b00vOER1cmF2em93U0NKT1pheCtjNnV3UjVsbjJjL0kraHIxMDNm?= =?utf-8?B?dXBJMUdob3h1RXFYVVRoUDN6N2trTkxNYXVHNDM4TVZQVEdyMlEwcERJN1Z2?= =?utf-8?B?VFJsU2lXNmFJaFBBekswakVYamRoL0dtcGUrV2t6aytWdWN1V0dLUFMvY1VV?= =?utf-8?B?ZXY5QnRuc3JkUVhEc0JkZnVTOGtqWXZVSEpIemdQQllqOWVIeGNtNWo0RXh1?= =?utf-8?B?aW42YzJVS0tLQTN1aVFWRGVBaDByZzZrVWJIb3dDNVBHeXRwNm1uWUdNM0NW?= =?utf-8?B?dUtNZDM2dnR6UGo4NFJpOUZ0TVJoWHhkaUZVVlR5OEtYTWQ2Z0I0WEw0MWs4?= =?utf-8?B?bWVPTHgycTZ3NDZPVUQrZE5vQUxodVZSTWg4QmVsVmVFamFWNHpsdHF4dnBi?= =?utf-8?B?ZFJidndMbkNkdG4wYjlhU2lyUnFnV0tQMmNFekxYSnlNOUgxbXFBN2lzZzZJ?= =?utf-8?B?a1hSanhhZk5YVW1oRjZOTFVIcUxtNi9Jemg0ZjhtME5NVk4yNjl2ZWltREI5?= =?utf-8?B?VUhzRTVYUFFpSGV4YWUxT2xGbXV3ZHZlU2FNVFhFYXR3THgwREFPb1plNGdo?= =?utf-8?Q?6gCdQH7SYEQE0/VnRV0AnZgrU=3D?= X-Microsoft-Exchange-Diagnostics: 1;DM2PR12MB0155;6:HevjrHrkViMI1EvFmtSTZmGFaZTsyJSRcljv7tykGitMwGNT1Uy3uew8QHpmJ92uKVY0mwhGlDR4c3yQ6/Bipzoa58SxbsIQ1/iQilBIYY6h6+MXtA1E38mAK1IUHpY0ki6MnakgcxORflQ5DyUOUXXMNSKa8IzlvONI4G759AdBxsTgcaOn46G3hjpFikzhznYXaEji4/PuYZS/ZQt2BVBl+MDO4GbkN0HGgEWhRjHKT67ovf1QbQ5OuLkYtVwUm/XVUZwAdjmT1bXoqnQ8bdTKMmKutFPiw3WxYUG7ogfV5/8GbnN2sBG2MLaKZGNZOeTI0pbbh6xqwbkIVTRUoXvnWe6HisiVUwyrTuA5+e0=;5:/RH5zVAKKYP5FsnY4D1lVaqfJg3JSOkn6wkldh8pDwKc5cArY9zMiLeZA5RlpspZg8dzc6gQkiRohtaUctwvpsLLMCfXmbq832+wiq9Hs2NxkwaS6/nn4YWUvDMltpbztBZUs+FXiJDMGo7yOL7IKmGuBTF5iVYC2c12wuCpVvk=;24:YaXEySE3mAPxC/igqIMZaN+SIeHfhKmypZKN/KUnWoc7JRTx4DcOhZnuoemeRHmLkK+KB2AlGO0lWxyD2tJZJ1ogD9yTvMk24B39zZ6YMtU=;7:ppEE2vA3uGudXWqB1u2LjiH1eWNCVT4dpCji+74t1kns+/PlR7bXTH2HT1Pjfr8u8buUNJGKZ89KymIuXSQWFLyb5QI+nVZAd7qhVgbkaYWqNfjmb4D4V4QDArRzfQCNekEA4idK9CENnMKsUa9W653O5XnuLqpzNYdSQX76AM1hLp3xo9GneAgEvIIYzxAPmeqtfODsrihz2NwA6TOI2zNbVcnhGzo5YMOf0WqTgfQsyFyFWIsa2tnXdmXQOzLP SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;DM2PR12MB0155;20:ailx99372UMNoC9nPCUPq5MW1OmySAY1vyNszEuoej6pI65NKowQDkhOoS/fXpZhuoJgQ1B0Lvyt1YEXaHl8XD5jeDPIFw66ZB9DqEjcWwg6YO7NR/LWoFPJMnWnF/eS5rnaDCtmb9PnYqx0ulcGCG0yh3ERKv/OIorMgimCZnihHmJtb5jXSA/bjJyDw+KygyZkFfadtjwXfcGmBKS9JfP1Ju5a8lowKrjs9tENQW3SImElbt8orPxFkZ3uMS5C X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Nov 2017 21:16:37.5786 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: eb17e6e2-8499-4a90-4fb4-08d5216dd6ae X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM2PR12MB0155 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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); -- 2.9.5