From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752329AbdJTCuJ (ORCPT ); Thu, 19 Oct 2017 22:50:09 -0400 Received: from mail-bl2nam02on0064.outbound.protection.outlook.com ([104.47.38.64]:18752 "EHLO NAM02-BL2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751683AbdJTCel (ORCPT ); Thu, 19 Oct 2017 22:34:41 -0400 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=brijesh.singh@amd.com; From: Brijesh Singh To: kvm@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, linux-kernel@vger.kernel.org, Brijesh Singh Subject: [Part2 PATCH v6 03/38] kvm: svm: prepare for new bit definition in nested_ctl Date: Thu, 19 Oct 2017 21:33:38 -0500 Message-Id: <20171020023413.122280-4-brijesh.singh@amd.com> X-Mailer: git-send-email 2.9.5 In-Reply-To: <20171020023413.122280-1-brijesh.singh@amd.com> References: <20171020023413.122280-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: MWHPR1701CA0020.namprd17.prod.outlook.com (10.172.58.30) To SN1PR12MB0157.namprd12.prod.outlook.com (10.162.3.144) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 618bc8be-4306-476f-bd62-08d517631c49 X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001)(48565401081)(4534020)(4602075)(4627075)(201703031133081)(201702281549075)(2017052603199);SRVR:SN1PR12MB0157; X-Microsoft-Exchange-Diagnostics: 1;SN1PR12MB0157;3:YaEkVvJirwcqLrbT1zh8SRzc4GFYpHjin3cwsYFL0qaDEmsGPf/r1HFYGO66teMPqYOd5zTI669hfjFTI/p568nNsDKG/0PBIce0137Tj0MotQr+ygmEpP3ub8kn3kDuSYvPCNBObboWNQ3tWdfsfoOzWke0yOGYEIbxNDVO7qeTw7MR2Z3Gg31kBK/ou+bCLfjmtK899V3BPDd6+nfZpn5rs71QcH3HT982CftuUjhaQ2saCx9AvxGrvFuAPAZo;25:vkxYC+gLdaAYyYZeWckBwAFyj6u/WozsJzzefdlT92ydApgN8B5xKGdrW+JryO5zCcV8S6X2ifRvA90dYPDMJVhJ1ltYy5Ta1viq7fPaF7dBg0w3CpTAztwOFXNMU1rgDV3l8YXW5YpZsvVG9ql4U4YOlVZIVOvf3sGlMJ68IKTYRge64WbLE0nrxmlPEPPstvXXJpIMJFl1lHlsEW63G4dPOxCoNInO85xOZLSKyVCvG6IFS8+XPcpludnJ9ujTRLJ1MsGU39ydj8mfT7G8V5MUpUE/SuKiJG+e71axmNtXQD2QS8wbev8bJK2HosyT2YFX1cILU2nWCvEZRfx6Gw==;31:vQu7x2tcw2kddnS9FVirA2UxCA4yM2jnWEPgTr0593AscwNxwJS+AwJcpP2NxFuVBV4qC2DfhLV7h+Chwu3hpROa8LGpDrzbdWu09jNnmLVc38U3lbf1iOmNd5mgGLN6yUl1Id71cwaKh6VkYhjmPCIo8pir8lb2NvNaFQ/xA0spl4USjf584wl/o5MEJxySc2yevMY09DivFJ1hG4ZKsnR5uuwBbSJ6cRFJAQFYnM4= X-MS-TrafficTypeDiagnostic: SN1PR12MB0157: X-Microsoft-Exchange-Diagnostics: 1;SN1PR12MB0157;20:z/NhYMeJaPmSXBBRNXWZlHRFswgdOr3XNIkP9IDOiRODZnv/5QuQ+pdYdIdH6sLXUgF9X5w1lGuS6g+7jQwXE9wMJPnCKnYbpx8cAhjiOKo4Ga2iFnvwjkY04xNw6sHZnjvx0u6Qfjh7pZkV/9vx6nbEyrqwarWAe/gFlASJl2KoXvURxX1fvFdbEEL8pxBkpbRSSilPe9XXkHJpOP1Ul7DJHUjKarg8jATM23v6I+HFrGiTqS4P2jrZtJnb5lrLXSvoXHmOlWRHMPhKJmFEM5djLl3UQe7nJaNx5BfjPq07njVOz1kqQZtTmuWXJhmMY8ljIppwzcXMSL05yC5evkcaCSJf2SX7xfEsVrIrHP6+z0zagCMX6ASd76Xawe5g/V6K0KTcqFUIXpcDFmSRlTheoe3o1MzxNxBhSY4NoHbtj/aVyLBIqyXThb2NYD7cgxRCONEJvt3AlLgr/lTspbEhoBKTHKhsoxzOZjc/mpFhNdHIaNS/VfULnV+7th+C;4:pxh1uPzvo8+AdpYaBGQG9wEuyqs4GEGwv6HFAadpsasoEPpda+VJs41YW+fLCoOu/OCM3vZwvjH0DmdLRCIB0aKTr/iZWNOZTpj2QBtL7n4F0wVHdwRrZe/nKL6TpYkwPzz5D4IAJNNhvbagnYw2FZJ6vJz2m/qzuMq+nZB7XrEiTFFM5lYHqW351CQ4SVuITxJftoHzuY0/PICqYVyq6Fd0B2Vbh3BK0lhNXr83pnTKySlWewPvWkmC1wvOmVy6189QEnovl32spgpe10vr/VFLkwuLO+iR3n2AuYfb83agWrkbtWkc+QOoNuyG+hG5 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)(3231020)(100000703101)(100105400095)(10201501046)(93006095)(93001095)(3002001)(6055026)(6041248)(20161123555025)(20161123564025)(20161123558100)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123562025)(20161123560025)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095);SRVR:SN1PR12MB0157;BCL:0;PCL:0;RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095);SRVR:SN1PR12MB0157; X-Forefront-PRVS: 0466CA5A45 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(6009001)(346002)(376002)(39860400002)(199003)(189002)(36756003)(7736002)(68736007)(50466002)(1076002)(478600001)(4326008)(16526018)(316002)(53936002)(6486002)(86362001)(575784001)(305945005)(53416004)(54906003)(50226002)(2351001)(106356001)(101416001)(81166006)(105586002)(8676002)(2361001)(76176999)(2870700001)(2906002)(50986999)(6916009)(23676002)(66066001)(47776003)(97736004)(6116002)(2950100002)(189998001)(8936002)(3846002)(33646002)(81156014)(7416002)(5660300001)(25786009);DIR:OUT;SFP:1101;SCL:1;SRVR:SN1PR12MB0157;H:ubuntu-010236106000.amd.com;FPR:;SPF:None;PTR:InfoNoRecords;A:1;MX:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtTTjFQUjEyTUIwMTU3OzIzOkU2UzhPejJBdUVwc0lEanhqdzd1OGNGQUMx?= =?utf-8?B?OWsxejdQMmRlZlZqVi9HWTdZMlhHb0J3bHBPZzRhRllYMFFwdWhUc3FsWGU0?= =?utf-8?B?d3RxeWJpWGJMaXBEOXA5T1VuY2lwRHVicGhhUjQ4V0pkaTZuMVJ2ckRWeHJm?= =?utf-8?B?OEY2djd2OHY2NzUyVlFCUmx3KzBaMTIzdDBmTWVsNkdKZGhHY0tYWTRzdncr?= =?utf-8?B?NmlrVG40eUM2RmdwcklkTmFNaFhHeDJ1TkpWRUoyTlovbUdOdU53YlZyeXhY?= =?utf-8?B?WFdwNEZUdmZYTjduMmRuSFUrejQ0dHhSMnM0bUFkMDdYRnJBR1FteldHejMx?= =?utf-8?B?Ukw1UjFvRmJ5VFVDSDJlblNCN3JQNUtQaHpJWFdxd2tWUHBXRU42dDdPV3dw?= =?utf-8?B?SWY5M1lFdUFTbEl2cDZFR2ptUVUyVkFNMjA0RHZOZVk1MDJsQ2F3RjJZL0lx?= =?utf-8?B?aTBadmYwcnEveStWYTRNSjM2dE5YRGZnT0FiczcvQVlZS3VRK2N0b2hvT092?= =?utf-8?B?emgrbVZjZDFEeERWUzNwWThFNU4wQzhKRzdjZE9JRzJLV0RIcFp3bDlTbHUr?= =?utf-8?B?T21OK1RwYkh1eE9nU3dPS0ZXY2UxTUsyRlZ1a3Rpd0lyNzY0b21YRWIvTzll?= =?utf-8?B?b2p4NDBMLy9OWnM4QjRKcWJOSXVjUjZzbEpkVFZmTHNNbTBwU0Z1bVdxdWNL?= =?utf-8?B?ODFsczMwNWw2OFpXdWZObG1vd2tRT0ovNCtSRDJGemJ5eUxYSXpnTkprOE9B?= =?utf-8?B?Y0JUVGVvakZhRUtFblFWK2ZLVjZ0RUhVWlpwbjI4RTBKU2xkWjc5SitaS2g1?= =?utf-8?B?NkpHRFdkOGJrRktUQ3NxemNlKzhLdzA1UjFHblV2bTBIOHR3SXBJc2pQbjJi?= =?utf-8?B?WG1NL3dMN3BVdTFIck54OHBrN1J0bExMVjloaXpWSmpCaStGOCtRTXh3NHNh?= =?utf-8?B?WDBkaDk5Skk3YlFEcFFBRjdBRUhDUWEzTVR1eWdIYWxSa1RhZ25CNDNIZDUv?= =?utf-8?B?dkt0YXVzcklMbG8xZ05kTEhBajZlbDNJYWsxUW83VmpRcXlrZ2xpcE1SYnBR?= =?utf-8?B?VER4dVk0Zk8vb0JGNldxSEFFOTdJYlFHUG5LYTQ5M3h4ZWl2QXZOekNGQjdF?= =?utf-8?B?cUpLMXNoWUJiclpndHdSL01rVU90U3MwV21ESFNOZFVwWWFnQTVod2lHOUJs?= =?utf-8?B?SHZEUS93dnpKamZiQjVNdzhyRUhaa0lnYWRLcTcwd0NNVU5hakp5MDM3dGov?= =?utf-8?B?RzQ4aG1HUmx5a2gweHBGRHpIS3o3YWc2UHJJQ3JieFNydDcwTy9SQ3N0RWpS?= =?utf-8?B?bFIzSU9QRmNBVktHeEwwNm9GK0FtbjBIY0dGd1hhc0xYTGY0Zm90aitjcnR4?= =?utf-8?B?eEFNSGwrY2l3NTBtR2dYYk9vMmhJWExDK3lIWWdrWUk5SFh4ekttRXQ5RWJ0?= =?utf-8?B?NkZQNE1wQUZYTmdwRUJuNTg0Q1NkNGhNYjM0VUI5Tm05YmhSQlBKa3FVMENZ?= =?utf-8?Q?A5vN1HkKnd8OrlULpQdRNd8nQyqDxG8GRo6l8dGG22MB04?= X-Microsoft-Exchange-Diagnostics: 1;SN1PR12MB0157;6:ACMLg2ZpRxG7Hvg+e9JRnOz2kRAlQtVN6DRglgMZWFe8GhxNNpqbrgb38HbPo49D63xnjYnvshn3rwUXLUJ50VXLU7pgx4NKc3SOVKQ1ITlevlmuYOnFDAI3dnp3m28Bla8nlqGkn7W6QNEW7A6+AuT2JiWGMZEmzMIi4b2YI/Hk6INhlb5D4AsK1hBYciwFFL2KyAhCtmNrOqilkaMAdVHuDTHTbt47fktmKptZRust+omk3efUOeDwWCXnBwZEsMikj1OSNJwNHnPoD9WBhvOdLAsUBzMrT/fa8xUi5iKWdBPHdfHz8URurloqauAo/CGzFmxLiePOAyvVnG8Jow==;5:cO1Hwbe/QCsDVcQg2s3NnIK3V+JuKICEerFMhVJCztBV6tOQnHHIeHyV16E4S5bumyKqn3H7siGjWJB01gQhBiRuq9G9QHcFMcj6wozn4nL/vysYNU4uSI8sft3Aek/frEpvZ/UpsZlKudvx1MwBrg==;24:BEhql30Qh0GamsivK4H55yO+b9RrCAtRaMirvF8NmZyZcRGfFussY/hMatBYI6hCX7jtdzn47GR9AV1ExTDp1sK5uftXpGK1ICOVMdKc5tk=;7:pepO1tSaOYqiJZbHoShezwu8LV1z6+eIfMCxFNCc0DWy+5CmXCf/czn+UdhAXooD5xU7rt8bvHUViV4bsl3PuNmdN5dqsXoWbBxGitLSfJsBIVxx3iRzS9KZV0t5s2GbADD8dHU/2vsUlwsXVJFJ5awNdCj+9r1PkwRDJVFp8tpH2We+5l4ERo5o+LkOOI8haa1dhU57eLqIsr4pLz7ND8yna3npHEo4pi28ll662Jo= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;SN1PR12MB0157;20:trhrTqfy3xbzmXhpL7YlX7AOUETuZSq4k6Z3rZ7SqPersROi80IuYK73gOddiXZg29TErwEq1AFW80Zapelao/NsbRz04YOJe7426W0QblGNRu0+FvOGLwfWMw427iB7u14RIrd24vgGwxxYsdrpBCjLCC9xyiFM76bTG52hGe2aCmPsJaRuTRpQZM6gddAVnnIZ90/UILNiHe6bLI0fUPun0LiTKs2CjSiZKQON33TwShE4imzjrTtogLcykltg X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Oct 2017 02:34:36.9401 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 618bc8be-4306-476f-bd62-08d517631c49 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN1PR12MB0157 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