From patchwork Mon Nov 6 18:10:55 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Brijesh Singh X-Patchwork-Id: 10044153 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 26B2A60247 for ; Mon, 6 Nov 2017 18:26:19 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 1CA2029E00 for ; Mon, 6 Nov 2017 18:26:19 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 100FA29E85; Mon, 6 Nov 2017 18:26:19 +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 7C0C929E00 for ; Mon, 6 Nov 2017 18:26:18 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932413AbdKFSMK (ORCPT ); Mon, 6 Nov 2017 13:12:10 -0500 Received: from mail-dm3nam03on0078.outbound.protection.outlook.com ([104.47.41.78]:9872 "EHLO NAM03-DM3-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S932374AbdKFSME (ORCPT ); Mon, 6 Nov 2017 13:12:04 -0500 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=6SwOqKqL22L/YW93EEXJpXk7iowB8NDzLyPULP+TCPs=; b=TmZ4YCRzvFURa5PMyT8KW5Js2QVYjARmbMIsRl0a5gyET3+BvISjehVJn+tW03CdfBDAGhcvpOoA9IOW7YVZyrT3GcPwnm0cgV0bjq2gEUge95zM0ivk7H+rSSU86xA2zrJAsyeUGMYE8A979vQLyWycN+UKcp9udGEdxJN64C8= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=brijesh.singh@amd.com; Received: from wsp141597wss.amd.com (165.204.78.1) by SN1PR12MB0159.namprd12.prod.outlook.com (10.162.3.146) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.197.13; Mon, 6 Nov 2017 18:11:58 +0000 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 v8 03/38] kvm: svm: prepare for new bit definition in nested_ctl Date: Mon, 6 Nov 2017 12:10:55 -0600 Message-Id: <20171106181130.68491-4-brijesh.singh@amd.com> X-Mailer: git-send-email 2.9.5 In-Reply-To: <20171106181130.68491-1-brijesh.singh@amd.com> References: <20171106181130.68491-1-brijesh.singh@amd.com> MIME-Version: 1.0 X-Originating-IP: [165.204.78.1] X-ClientProxiedBy: BN6PR10CA0031.namprd10.prod.outlook.com (10.175.102.145) To SN1PR12MB0159.namprd12.prod.outlook.com (10.162.3.146) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 830debee-8182-4898-7f47-08d52541df40 X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(4534020)(4602075)(4627115)(201703031133081)(201702281549075)(48565401081)(2017052603199); SRVR:SN1PR12MB0159; X-Microsoft-Exchange-Diagnostics: 1; SN1PR12MB0159; 3:sSeTWNClI8zK2IYgo/E+DSX11+rFUD7MEQBfjmaI+cvX+xio6lWJV5Gl7xFTJLTFtedU2/oDRsAeGubL8no0Lppu6J21U8mGYjr850GGuBE1GDJSaZrwRIkwzoLEMdEMsNDUtvUbbtNZD5WX1H04iJN7cAYf6FDCWigqULGqJWuLAXO1c/N7VP/kao45wPmeCcprlsfjazAOdSpxavHT4kgLsRBHPXUr9ylyGYOavxNkOxWVCX21ZvKaFKOCJh3T; 25:zZzCPqMjv8JXktW0GSsaZtXx0/Cf48JwuvnC2J/JM9J07641xnmMExvExlV4egATHVQTVVx4I1OBbfwS7+n7Q/vtNG5pHHSn5M1rGZAy+t6CbArJGUQdeMndUSjrC4oc3F4i2GqdGh3vSdPXardBMiDRcNs825cnTT9C/bEXCkdSSeadSJy0+j+deE/inZDcUiv6/UBe5RI6aYZoTsx9xV8+nl5VduVk8MTcNT78XajYwfZpTt2Fa8rghEmTTUhVph8Uxmn4vd1ctP95FqMv84KV5VtgWUL+PWd0Q/Lw1g5V4cllJdjeQumYFRtpR9H241w4nQCNQLPa3y8Q/MiBpg==; 31:YdFU941Ylfo8XHsvpxoXzwfT3CAF1Es8yNumZnRPaf2TCtQtpLySuYY2R8kJ2wLQ5nVE3GxJPjV0FP6UsuWlvT5gAU1Yw0GTYEdQDqDPAFmRRmWqrTVSTuv8WNhdqied6Gx5znOTOyYPzmGlDWwFkzG8G2S8f9oV8jSp7sHhryG56sGV5Epmn/dxw0acTPjTomHq6Sh1MF67rI6QaBJvM6TZiFvYAoQC13VFP2SnWck= X-MS-TrafficTypeDiagnostic: SN1PR12MB0159: X-Microsoft-Exchange-Diagnostics: 1; SN1PR12MB0159; 20:DeUpYIhlH2e3bPg+H0ZDHQ+I0xje5xx3wjNp5DHHu7YB4SpxAtW2YW5UNWh1hSJiz5yPl6VwF+xGmqKIVZWKISIujEG2oR/eEg9Ezyj5kDFueMZlH+feDrn/JtWhNMkCRHQwmLZPX5dD+ATMIYStTNuYH4EgO238LCgAQNaRpRZ9+6j66E8B9cM0sHm+5DANTYHEBQAs9DP11hQRpz0NAa2MP5etpt+ZCiuCADt9+IgrE+Q9m60OfFWeLzRqK6P3jUbea2pJ4km7uCl+L/6tvOx9/Ml3oVeJ/YfJzKi/K+ED2L6D8cb5b5jlB4aZ7AI9jnUMvzNuqbfspiwlKESoTJQfJN8ftRbmUhjrXieqU2H15J7jeHZcD7pg0AMc9jgjr+YWqTTWtUbczV4LytLVNZp8uEeLvSA/nYpaBNV/LeFNXTiOAWem9QXqcpRObrymZSvhGuaMHBJy/Qb5blpQCz8mq8N8pLv0B/5S1fCzzk3Q+Z/KcBGo2s8CneSHsHgV; 4:eFgoYNTVdPLSeSn4MABMwJQXFRpxOcSqZynhlhV8Hc6cACU8VOnuevq2+QiV1jFAQvufexn0jBLjDLELz3MKzeZQ/kmVl4AYDZ+SJjaR90n8dc6lf5qzKM2SVefHB+xo1H2BQmUmJ21otQqk0RD62CTr8VqPmScVX9SlhwlxIT3dzCOgZTVuyhTnJIxB8hSqoSqBS1OhmeVqbroC2eYWqxFBEKmpXYmnsbiZbLJHNSPYTvk/5BPq9cjM5OPtqRSYDBdHp17xnrJ/XEj5fcZhFohuMYcZrOvLi9FQGrzmQrQyBnPLi+2gpOEBVo5XZyH64xRoosc2xh1uHSNbGB4UHQ== 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)(3231021)(100000703101)(100105400095)(3002001)(93006095)(93001095)(10201501046)(6055026)(6041248)(20161123564025)(20161123562025)(20161123555025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123560025)(20161123558100)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:SN1PR12MB0159; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:SN1PR12MB0159; X-Forefront-PRVS: 048396AFA0 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(6009001)(346002)(376002)(39860400002)(189002)(199003)(68736007)(97736004)(4326008)(316002)(16526018)(54906003)(7736002)(8936002)(2906002)(81166006)(81156014)(25786009)(53936002)(8676002)(2870700001)(1076002)(6116002)(23676003)(50226002)(189998001)(305945005)(86362001)(3846002)(50466002)(33646002)(66066001)(36756003)(53416004)(47776003)(5660300001)(7416002)(76176999)(478600001)(6486002)(105586002)(50986999)(2950100002)(101416001)(106356001)(6666003); DIR:OUT; SFP:1101; SCL:1; SRVR:SN1PR12MB0159; H:wsp141597wss.amd.com; FPR:; SPF:None; PTR:InfoNoRecords; MX:1; A:1; LANG:en; Received-SPF: None (protection.outlook.com: amd.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtTTjFQUjEyTUIwMTU5OzIzOkJDeTdRdW5VSnh2cXhzZTQvcEw3eUVjSUU2?= =?utf-8?B?ckx2Q2VRTDAxU1dZRE0wSk1UTzZlMDNRaUllcUxyTDlMZktZVkQ3bzJZWEhi?= =?utf-8?B?TE1WZUtVOVlLUjJrd2VMSy9iWTB3TWFrOWhIS3JjaDNOVWZmNU9tSklNWThN?= =?utf-8?B?NCt4eURGdk05WnlGMHBESnpyRmZIcjNqZkd4VUpIMCt5d1k2RFdla0x0aVJa?= =?utf-8?B?Zk1BMmpiUWttbGM0eFE1TXN2dUJzNkdQN0dpaDB0RnpKTHI2MTlXRitXZStq?= =?utf-8?B?TUxZNjNmSTRRRDNnMG4rNkIvZ2NZSkhUTWRIaUZkak5PN3VJT1o5bFNZK3NO?= =?utf-8?B?Y3YxTnNvdUhMV1JIYmtnVk4rTk8wVmJSUERjR29yQUgxWURESkNTdUw5R0I2?= =?utf-8?B?RWZCbzVHLzBVMVB5SU11RFdNWEFmN2hhem9taTVJclVHcGJTSWFhUGxWbm5U?= =?utf-8?B?a250Q3NVNHNIeGJWVGZobDdNeTE5cXVuVUFEZlhoc0lEOUFqcERLcXZ4aldi?= =?utf-8?B?aENWcUh5clhMcFdJK1oyVnFWeFUzcHViODdtYituOTRaaldnOW9CR2U4cDRo?= =?utf-8?B?dzdENDd5WDFiU3JoZHJVREVWOFJLM1VuaW1pZmhENlNwUDZXK2F5T1BBeWRI?= =?utf-8?B?U1hOSDFZcm1lSGJJTzhvZVRHWllFZmtxdnJZWGZZcS8vVVp0YUFXMFQrdWdx?= =?utf-8?B?V0k5WGREckRDRTY4SDN0THdBbS84VFRyb2FZOHd5SmFWRDFFMFRhY2RwbkNW?= =?utf-8?B?MVJocWs2QkExR0dUS1hqVkRZb1VGcmE2a3k1bExOUk5acGQ1WnowRFVWenR1?= =?utf-8?B?bE14QlB6UXpncmhGWjg0Q2k2UnNBZTZCQklGMmgrdFYyRjJ0VFV6RnZBN3BY?= =?utf-8?B?MVJISE40QzJuKzNrM085cStTcThrcW9tVlY3Sk5ueFRNZHdEUGZZemtObHI1?= =?utf-8?B?VkFENHNTSUhDeDVCVUFWLzR2R1ZwQllLdzdUblVxS3JoNUxpQVNLdG9rclVu?= =?utf-8?B?MmVISVNBcThURmQ0SjI0Q28wRCtFNjJkUjQ5U0U3VHNMd1hydmlrc0oyYzRV?= =?utf-8?B?WUNtUmVCUEJxdmhUU2djYi9sRU9rcWtTTDdMbFdpcDk3SXl4MzgydE9jMldB?= =?utf-8?B?TzFMZmFERGlmMlNCSHdINHIveVZBcTBvUXFrSzhrR3ptRjcxM3NObzFreHM0?= =?utf-8?B?Mm1TSzRPbkpkdzRvMHBESnJ0QVdRK3UyQi90QkxNT20yVERlTHFsYTVSN3p4?= =?utf-8?B?eUJYS2t1ZG9qUDRvS3BJSVRMK0hsSUQ0YmFVUnBDbVgvbktabHlBbldVU1Yx?= =?utf-8?B?dlpWdERpVi9sL0lGcC8rZG9vUzgzTGt4OFVlNnJEck5UTnJuSlFadUZTdjJi?= =?utf-8?B?NGlpOTF5d010M0xYTXZEbnRLRmZKdWljV1ZWa2JmemEwV1dhdVQrLzFMMmZ5?= =?utf-8?Q?/Qkm7VihM1Gi8RTVphzpk1gCPEO?= X-Microsoft-Exchange-Diagnostics: 1; SN1PR12MB0159; 6:pejcHTFH/MeQqarX3XQk5mUF8T9UGKK+T88TgljRJ4DtJuTlVjgNegIG7JSLy35/0h86ubMEWJn3QeIo6I76zHe/o06EjSG0L7Cc4tvkzduy/jmdNzAkCTZjCkvvmSF51NVWzgrTenYLULVhuAsPHVYAzK/JjpZeH+BYdi9WuIQZiqa8gNllFggclmSK/Ufw/Sk+J92gaezt2447Mfpe7X8QJe+TkOf8ipRyPUUitw08rqvm2zXxJCOv8Do4tLewRYQuDXPBbFRlSjmUciriTlLlhQ8IfHB1AZiI4+J272NV9fzpOCBJQPF2I5jg97XNzkVgoFOMiP/4hDmUwZcweZ5Hk7JRMBCcIEtpYF0+xag=; 5:P92pun6YMwFNo8B3sSm7hSQ/g1KSzLbUOSVWt669hhjjjuqLSJMDBjpzy3WjLZ3C1B6gWZw7i61VAXf60BNCNaT5iQzkrT0lzSDLhqlwhZtS1Gy/9XKhtrSaxpVmos4eIKcQwOjiPWTQ37bake2iRCZcGo0J5ACGWcblOXjMGFY=; 24:Io/N4P9c1Ha+uvqaBlGHEX8HFlgF9xRsrle5/7g/KgBQNXNAkeEkkrDdntTuWo4okImQzsMGpkBxqpdgDoLWOi/HU6RIdxq1oDvRMWgqL1w=; 7:FLlZwSg8yYfd2zMyA1eGhS7z+s6A7LPfCNwtXQDrOmWmyWhLlc75rkkLfSk9NHxNZ+rlTif4ZgKcU0UjIMthssoGM14eyNSEYI9cyYqjpClRkHYvdBF733rNW4kP6NyT5a1k6mkNKF0HIpOTfl9PKMW4GpcsLdc6U7e0YmPGLymHCH+bWhpMFIw+N3wCtxK1KoE0mlc8EMgIkyIceKuszPmmPt8ZgTmIHhM3dIVre/k83FUGmvk/MXiuZbM6DM9f SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; SN1PR12MB0159; 20:5WcVUOewh5n4jTW5V95HzZ0OWa2uol/jskIOwrCdMcGJv4eOqQbzqtpWSOKV7br/N0McPkzywDRFGUWbD3PXjSBpsAfsPNEFOY/KiF0DOZNDh+CLXJVoL90YdlLik94OM0gLdmw2W4flbbjdhZ4ZbJX09c5/BemWpJRe3qXBMCdPElAUqrm3Kq9eXCDTwcu/sN+63bbc/q+VNxXxuooIs6GyiXFjNs/kWyUoqPy6nydKP20r0ZFMIC4BEQyLsK00 X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Nov 2017 18:11:58.0972 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 830debee-8182-4898-7f47-08d52541df40 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN1PR12MB0159 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 b71daed3cca2..93c1b2e77d76 100644 --- a/arch/x86/kvm/svm.c +++ b/arch/x86/kvm/svm.c @@ -1293,7 +1293,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); @@ -2918,7 +2918,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; @@ -2932,7 +2933,7 @@ static void enter_svm_guest_mode(struct vcpu_svm *svm, u64 vmcb_gpa, 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);