From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751735AbdISUq6 (ORCPT ); Tue, 19 Sep 2017 16:46:58 -0400 Received: from mail-by2nam01on0052.outbound.protection.outlook.com ([104.47.34.52]:32170 "EHLO NAM01-BY2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751673AbdISUqx (ORCPT ); Tue, 19 Sep 2017 16:46:53 -0400 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=brijesh.singh@amd.com; From: Brijesh Singh To: linux-kernel@vger.kernel.org, kvm@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 , x86@kernel.org, Brijesh Singh Subject: [Part2 PATCH v4 03/29] kvm: svm: prepare for new bit definition in nested_ctl Date: Tue, 19 Sep 2017 15:46:01 -0500 Message-Id: <20170919204627.3875-4-brijesh.singh@amd.com> X-Mailer: git-send-email 2.9.5 In-Reply-To: <20170919204627.3875-1-brijesh.singh@amd.com> References: <20170919204627.3875-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: CY4PR04CA0071.namprd04.prod.outlook.com (10.171.243.164) To SN1PR12MB0158.namprd12.prod.outlook.com (10.162.3.145) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 8fb39931-4d02-4e83-fbdb-08d4ff9f8d34 X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(2017030254152)(48565401081)(300000503095)(300135400095)(2017052603199)(201703131423075)(201703031133081)(201702281549075)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095);SRVR:SN1PR12MB0158; X-Microsoft-Exchange-Diagnostics: 1;SN1PR12MB0158;3:PpaRuritrNHG++Eo11t3JV6h/wh2tJKNMRQQX5BefTi8ygOtrY+OxPV6evSLELkVY/yQf1FJZjd9AdXAtjzhNEsCrulQkQchKevLVk2avau67+yxQ6u81cEMl5dxU6y7Y6j/iI1wp8rpUcrOhSpbkGZzKKyOz+hLW/5qBH3LuinEbSZsLL8EdQiq+R8avqZuIIrhUMjXXPIle+lFZ9UUzllKtwFNhph8tZywHlipePrIsqTsww6e4C0udaf1zSZ2;25:oENc5UG4ZZfAl876/gT7CKkWtUMAlgTGuCU+EBcPOydYbF6ci5kYhVLc/TaGWk3mu6LdSbieZzkHsPr21vAee0PoS1+v5seVCa4SnHr1rrRIMK/3KObAPl80/1tyC2gqb1Rj9IYiKzHnE59AuD2IzdBpJVQ773yy8B2Y7ZnkOJAflfGwSdsoGwAda6f1OXvvnF4ikAJV/58L/lcnJJpboU2yk2OX17ti5LbBXqc77zaANcmy461jF80jnzQ+9g/W9r1dg2zfgnd8mUZ1lsjQB/TQ3TMY1jMfrCA0doUF9p7JyX1fe9GigZXqsaz69yzYtQJ6AXnQEjYa3siBF5Ik5w==;31:Ckwn7hnLMTinOCSXhKF2h0CCddLo6w4pljoT/qcZ+qNU5pohiFhV0V0C4FWPyuuxPJ7QUIumR4B/Xw3ZduX/BEi3rghcAzjwICKGhj7C+S/MLlfHDjbPyEWyrJUnjyD6Hs96W8CUeYlaXvgmdbBaVT/k2nR5UplCeYE7UtVZiLnilG/+89jXmiCgrhL8wQdIiJHdAMq00IczSB6hFdgR57xOdp+5smVSwG5iKNDOkg8= X-MS-TrafficTypeDiagnostic: SN1PR12MB0158: X-Microsoft-Exchange-Diagnostics: 1;SN1PR12MB0158;20:P/ydk3ghwyQiY7+G6ReSIXykdF/xOku1j0XDF4XiDgEfmxJ9y18Pb/ZgmCbp6bFxHJjHwa+1sjcfFf9X7da/W9mXnhmMR+k4t1Rc93XhP8Fw6v3UBRpvErBE2744sildFjvwFtmoK1t1UytJCRd21kl/91Pgnm9kQoqbC7ulK6U8Ob0v25yT3+BYHZTszNuLVA1L/H+FyG63wKemINq5XXVxAbvTLcymKhETn7XZBhcFYe3j9JupkHM8+sBoSRf0JCdoymKsi/eT2SpjJj4S7CYxzcAEJPBdwCkh3x8pHBnicniDZjQFulviFBxc+UizND+pN9BG6cWc9BX+H0eea/Epb++3djQ6+BL482FiFYGnA/0rmbVGG0FLfhv8NbInczY2xl0IEmrtOEmcdrbpeybpTsU2DVT++4eeRpgNG/pXc0gzWh1bxOlWeMStF1RRncQODtEZs1K6BQQMbCcwkaV5ocRlzNooxDmHSmPGkwaxk+HkDkmjqfeQFEnGmuGo;4:z/IxQOG7VlWwSy9fw1GRlk7U64S2+4zCKAIFylG++08a8qy8/NGx2BiyCPOfQOEJDFpZNw3SI+HM0v5nRMBu5T44TwVAFzxJhp9unve+lzXYo6p55bmVj+41ioKCBf0j7L1cHWfzksVEM46lEx7Fl84omS3eX7dmSI/fdQ1FpGawksTG+mgZaCSTSrrjnnKH/C9wOOUToo19S1lctKuS9BBuStxzI+TtJWqixTXcesCkDNSti7/Z9fsFehGFxs23SAUDZuTUg3hKJwqHfd0fIlNY0J4LRbvi6MQiPLq/8aWJELTwXU++CvyClH0D5g5A 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)(93006095)(93001095)(100000703101)(100105400095)(3002001)(10201501046)(6055026)(6041248)(20161123560025)(20161123558100)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123555025)(20161123562025)(20161123564025)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095);SRVR:SN1PR12MB0158;BCL:0;PCL:0;RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095);SRVR:SN1PR12MB0158; X-Forefront-PRVS: 04359FAD81 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(979002)(6009001)(346002)(376002)(39860400002)(199003)(189002)(86362001)(50466002)(8936002)(97736004)(6116002)(3846002)(7416002)(81156014)(8676002)(50226002)(2950100002)(575784001)(81166006)(316002)(478600001)(16526017)(6666003)(7736002)(66066001)(305945005)(47776003)(6486002)(189998001)(53416004)(25786009)(101416001)(2870700001)(50986999)(76176999)(53936002)(2906002)(68736007)(36756003)(106356001)(1076002)(4326008)(5660300001)(105586002)(33646002)(23676002)(54906003)(969003)(989001)(999001)(1009001)(1019001);DIR:OUT;SFP:1101;SCL:1;SRVR:SN1PR12MB0158;H:ubuntu-010236106000.amd.com;FPR:;SPF:None;PTR:InfoNoRecords;A:1;MX:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtTTjFQUjEyTUIwMTU4OzIzOkFlS0ZTaEtkMmxMRStxMzdnVi9PNEowSUhw?= =?utf-8?B?bHFkZ0ZNUVlmZFpBNmlWTGFzWTk2aXRiME94QWNRSERqMkwzUk5IMTFwTnpw?= =?utf-8?B?WXJqZDl0NkRtS25QTXliczFHS3RRek9vRnI2SXlua015VVdMYm1MTlN3bUJ2?= =?utf-8?B?WWF5OWJ6eVhUTUkzcGdTZ2FBS0h6eFpPU05GUUYrQVJVMVBFR29YT1ZTT0w3?= =?utf-8?B?QjZrMDJQZ1JLek5JM2lNSEM4ZHVmSDEvd0dpemc2V1M0eklOZWNzZDRtVkhI?= =?utf-8?B?UnA1bmV0MDYxUHdaZHBuYUFuamlzNU4wMWlVMWo1NXgxQUtxeWFpUkFzQVlT?= =?utf-8?B?QmxZWXkzU05YL2o0NnZqajFLVU1kdnJLNTh0TTJ2UWtQZUdMckd5Y3FQVjla?= =?utf-8?B?Y21NTzN2V3hFTFA5bHJqcDBaaHZUUStEdEZLYVJpMXFLbG1ibWppdU43djVO?= =?utf-8?B?R3dncVhKODlaVmp6MHNPTzRpZmFvcDNEbFQwWUlkcG1IbU9BUUpjdXhzQ3JF?= =?utf-8?B?YThFeTBqMGlwVFd4Sm5TUWRodk50M2JJbWRIenZoTDNoekNJK3VtS2JyZkFG?= =?utf-8?B?KzFSZk5OeVRQQ09HWjdDb3VUUWYxWEVBcUhDRUpaZUo5REFRc0N0V0RXN29m?= =?utf-8?B?OWdTNHk3a211UHE4RE4rR09BSWdDbktDbnVUOUFyeE1lbTdzalNjREJBbXpM?= =?utf-8?B?MHZ1Z0todTBlbkprRTl1THZvQVVWcFBBSi9KbWJOVU4wOUlXMGIzNko3dlk2?= =?utf-8?B?WThZcGlsOXUyTE4wV1FrT1QxT3MyNE53OW1VZDMzNXNqa0lhM3k5Y1R6NEJO?= =?utf-8?B?SXdmcmNXY3cvL0hFbm1mR1JRT2JNY0FyOTdsc2pRRnk2K2JqV2tMdHBmRWdJ?= =?utf-8?B?NTRFNXE4ME1DdktaamMvRFRrWVRvV1VtYUtUZlZQWTN1Q0JLbGhOc0tGVTk4?= =?utf-8?B?RGNaWldTS1REK1JZa0x0QU9sNk5qQ2FHSnZrb2w2L3lmWnBKMXBRMG1VN0gz?= =?utf-8?B?eTgzaTV4S3J3MXQ1NHhKakRGU3hBZ0FNNGxoamJ6djJ2Qk80R0xvbGF5cGxG?= =?utf-8?B?ZkFUV0drM0dKNGIyVDBBRmpZS1hHdngrWjU0OFQ3ejZXcExCVi84Z3lJaHRm?= =?utf-8?B?Wi9ubHZFL25kQ09VZGlTQkhXdTNkemM4aFRtLzBVVnpKT29CL2cxTDNBRWFF?= =?utf-8?B?SWJER0pBQzYwZ3Vma3BjdTFLOFdGeDl3Wm1JaHpScEhRMmUxQlZjcFNDdXo4?= =?utf-8?B?WUR2My8yWHVyMGhUdnFRMFZJYVpLQW5GbWhLM3NORzNZRE9vNGI0V0Q3WFFs?= =?utf-8?B?aUEvZFVHeDl2dFJMcWdzQlI0cmF2K2YzTko0NEFseERIaTY2RlgzRy9mcW9D?= =?utf-8?B?OEJldjloNGUvUlFsYUJ6enEzWSthK2NDd2tGN3k0cHhhQnQwNWQzVCtBTDk0?= =?utf-8?B?anIzQjRldUxTOFRmQjROMFIra1VGUms5MU1ERitWcENLZXVXeU8xNDZSSWFG?= =?utf-8?B?UjJSdW9Ua0YydENFK2xyOHVVclM3WWZMRitkcDZNY3o2Tm9ZYTdCa2p5dE5G?= =?utf-8?B?WGluNnI1eDUxck1WRnVDQWFEL0hGdWQ0bG1pdm42VEkzelFwd3RBNFVpTUgy?= =?utf-8?Q?0ZJb7+xwiEy1x3m1MJrV?= X-Microsoft-Exchange-Diagnostics: 1;SN1PR12MB0158;6:g0tT6hnRf+voeHVco7wj0W3+iKdCAtP4OHuY1G+yI4wDXZASq5Om5zIL1+VvQtmmiGZo53YPf7sSx6XqXhsG9av12jODq2rzdxs9OnDlzH3cbl/fk5cWetxpEtO1Op9krMeHk/xjTN57SCcKDS5w4A4I84Vl1FfnShQQUHWzYdH7J7xej22sbkhRRT6otWYIG0Fw1af2cikxUk8W0t4D0nh5bivdBthpZOEFwiqDlJrTV18dLC4RqnJvxMPXI8p6WE2hBEiW5lMcnsm5aSKy6fe2nfuIjQk9xGhfex+bCYuJa+6TdFxmJAq1kE3R07hxKxcIJakB4fJmsxPlDa7x7w==;5:7BTRRGaxYc/0mfZKC53/07ToJpVrk9XJqDXPxf8rQYJgHSXCUF5rYpiGSHnBVvQglqxSUn+8P0voPAF4JmYc28ut4HwCzqG2o8DGF1EJEzCasNkyUgF8IT5ysMT2n9OQW7uc5nSflRxyDWZOMe+tYQ==;24:IUW1SH1x07n+04RyAeJGItfNO0JcR9/M8D1AOhn9BHATq+CXYpvOA3uBTWqZN3yEOjQPb6wyfgoEqUtHAXohhDK+XRHCE7W5xugjOGiWgCM=;7:QJyHCykz4q93BfimDO5DWy1PK0F2Vu3l2/JlQ/C9XRPCwvzU+9sBOr9iD8ci8nQr6SOYQhF7R8nQFzqhjNBbTP3Qy8JwBxQHHaKqROVPKnxVfzjsBTrW2oyPZIImxnRcr1l2BXwslKp5uTGeAYP5z8joCmOLyECUt3Xnxlbiv7C+lm0mHsR/nGByH8dhgLLfzWlQpE23pOc7e42yOo9jOxx2SXKvhkSr32OGU73Alns= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;SN1PR12MB0158;20:kSmdCvQPZ0YooTPhgMKBJbEDDaLOoGlpXZzTSdz8JKPvHfo2DliSE7Jtq8GdyHqMIXHFY+d9QDEZjYZdnPJ2J6vKucKGD93pDJiPL4Cc0pzCkuIxHvlD0qyLwZ9ama8MFsffWau018LYJ2+EXMy+YUqUDer6+VYQqMOdIRQZyal6GOPQ8ZPkSpXeilRCmJp01xiL+nmHbcOO/m33VYbLw5KTnGYTmt69JufCRE01YVe3oKT57ZEqgTCA7g/vP5bs X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Sep 2017 20:46:49.1120 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN1PR12MB0158 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