From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752055AbdISUtC (ORCPT ); Tue, 19 Sep 2017 16:49:02 -0400 Received: from mail-by2nam01on0056.outbound.protection.outlook.com ([104.47.34.56]:55572 "EHLO NAM01-BY2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751634AbdISUrX (ORCPT ); Tue, 19 Sep 2017 16:47:23 -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: Brijesh Singh , Thomas Gleixner , Ingo Molnar , "H. Peter Anvin" , Paolo Bonzini , =?UTF-8?q?Radim=20Kr=C4=8Dm=C3=A1=C5=99?= , Joerg Roedel , Borislav Petkov , Tom Lendacky , x86@kernel.org Subject: [Part2 PATCH v4 25/29] KVM: X86: Add memory encryption enabled ops Date: Tue, 19 Sep 2017 15:46:23 -0500 Message-Id: <20170919204627.3875-26-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: d4442f40-e356-4fac-8a25-08d4ff9f9d23 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:Ef1h6Xr8oOyc1eht45HhpeWUE87cYCSKE1XsrZVkBeX76nq84+wPj4eWbnb9siE8wzblo30kPQOUOa/okr8wp2YSmpiytc9zPGUllCE8UTEoo4em6QIcrTlC1OZppjbMdcRY9T73Mvlcvn2UVtnMr/U/ixoJosTtcNXZC+8mzW/vjYNHyH78euC/xatrt6WbWN1+Ek2OuW4+/e4IbUsLjbTShZrkslRMM2CQeeLoZ8jv4P1D6K2/VAUY9DOw5J7P;25:P8G/3YppJf3jFpccu0nrasTysjFrev/W4j3MYWECLkkmHP4IX1u+BAW2Hh/6P1ZREvkygnxM+KR91RLA1WS8OazdAVFhg5tYs+MiCrYDT8aUt6P0fjjxspQORYI3NK4XWzYBj96GHqZT1wGPS6g+BmUijOWxJHaKWoOJqZV9CqZNow7C5qXp2Kf3PCacfUDB3zhBy4AmPKPtGW87+JQaJ6UzkIG9rItXVN48B6535JIAfoL7Qq6hmW2eB3a0hhqvm6R4tVYabtgH+3d0x4sx08LHekSwbcNXziL3Kz72ekH8+BRH/jNrtC6+kspNC8Dj72NXCS1m84Npz6eekF39rQ==;31:/fRXar3LOtCv3+bvlVpeO7hq7jHZWpLEgBlJjDkECc3b3Vt2fdChTVHG/ier/LwTTv3UZ5TfmLG6z8Bq7GdG8xRDP5it0K7DfDwI4nFAbzgxFDZJ6E8QoYfW4gyT1x7wg2YFP0me6POD8e70AiC4WiGffCvNwWOxFZAOxpOWQeS91eLD7fKIXvgXgjLSz5Bq471lg3wsS9SlJkPwAkHrk04jSh13j6/vfrZoa1U+t7g= X-MS-TrafficTypeDiagnostic: SN1PR12MB0158: X-Microsoft-Exchange-Diagnostics: 1;SN1PR12MB0158;20:LJyoWPCdBiGGYl0w+jtlq3fLyXmiWmCszoX7RQMJG5IVg1aGnkcA7eXIe+2bJWatDri0K54kBxBNphj0/mBo7PBMZyVnx8cWBFw/ZodWBqe7ozqREKxB1veM7D6XRra8ye++BZtrUAj2lqkm2o7mILLLqtx2XQVIi7oP29ivgU3fE3nNDWyo+VBHvEy1nedTOqBmVwiu3davfIaQAEfNUCDgqi20U9ih9YUNANVLfM6GGA3qSJM91SAkfz1fWvF0CaxyHpiLdlr8lBJxQUat8BmoRca3Bc6eus6GRC0RglM3/81lohniwh/Wt8QGWMq1Xkjd5UFJ8u/Q/p2csj/TocX7Quh+IwXmAq9Pdygct29viahnr9FuwrjAibdy+1t+pjTTnBJ7k1TMvRhd4vohGrzJozt7C/yGRJ3wXFtbihjYV4NP81RdU0AZmeFDIzRhkm06gL7k1QCBJsGW0sB1Jl8ThavaNrWsSg49/JGU/yJxIdlnTvbncmAkpupWbcUM;4:r8XWouKu0vV+DVTqW3l9S8ZsvezInko+mrrWD8+FLSZ41Dp20sSD6ywg2s7iR6hQlcRiyrQlQZ0JVBzUhSKLt3t6FnOaRrakaYjxHWNDs+PLKB4TPanuIxgoctg02y/lGaQOVj1TybShbzhA5iJZ56Rh9PZGfIYG9PhPkw1QA4XxZAx1hbQWmfFsgGjNEZlNR0N/NzgDIiS/fVpoIVhbrQYavnRgHU1i2dAHPoTTk0EKdHTfb+Y+2ys7EJ7mKrAeiFMZqhfkQqbS1v2A7XH+KXUrajxRpNptKoRyGzlYFs1VNPD5lOhoPip7CkhBoidipYiLj6tQZDlqKl7eR3Kizg== 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)(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);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?MTtTTjFQUjEyTUIwMTU4OzIzOkFuaW0zUjEzNlVSMTJKTU91OWFhc2kzaW1I?= =?utf-8?B?elloVHU3RzQ3UHVEL2gwcW56dVlQc2ZDamNoVGorS1lJNVhEc3BBOFcycklL?= =?utf-8?B?clBPcVlMWVViUHdEeTVnMjh5ZWF5RWl6NENiRXdQVzhYb01EdEswWkxHVUNx?= =?utf-8?B?RVZtUit2OHc2M0RwWlQxM3prakIxUTJmT2wyUURwRDdJeHFRVzgxckk4b2I4?= =?utf-8?B?TnVZcDdoYTg3TENubjBnZ0JHQlRwdnhpZUNvOWJ3WUk0K3hFNWFmL1Q3S1RT?= =?utf-8?B?M0N5ZDZGY05Gck50TmhJT3ZLaVNiTzh6Q2VoTGNwZTJZek9lQ0Z1Y0ZFbnZn?= =?utf-8?B?Z0hGb3FBeTByNE15dElhMGtpa1RnZGpzM2ZTVEtUQUFGSlZEL1RlOGVkWlNm?= =?utf-8?B?VEJpQ1QwdU9ZRTJPMGRDMUpRcTVSaDBydHM2MXhZdCtwNDcwUk9Namo3MnNl?= =?utf-8?B?ZTV5S09USi9UWjR5dUFBMlNZZnE3c3IrZmlTendreVA2S2xJRHgwZy9MVFBw?= =?utf-8?B?cnFaMm81ZE5uMTVyb1NjVXg3SjBySGJaUzRQNXZuQ1BLMUtndVhHdDZQRStY?= =?utf-8?B?TlpPaVJVRm5CNzNma3dWVkRVL1BTWm1BRlRIR0xwSnBVemhqbWFGQ0cxczRp?= =?utf-8?B?ZkJ0Qjh2MVNnd0NTNFZEcHV4REhCOW5zK256bElHKy9SMEtibGJMY2FWZmhO?= =?utf-8?B?eGxZcDQ2WlVnZXVEUFdzMUVqUU9rRXVkM2VRM3o1TkRqMVozNUxPMGpzN1oy?= =?utf-8?B?MGhuRStwdmRuUUR4YmhhSGVUaHEzS2RrcWY1bGRYd2RNWmNuTURKZFRjUWJj?= =?utf-8?B?dFpaTitCRlRjYkNZRlZ5QUJVZFpxTjdLd3FNV2k0bzN2RlFOeXEwWERGK3Jj?= =?utf-8?B?UERxV1JjUUJqZVluaHErRlBENlV0MDFoK0Q3Z0pDNDJuSkxVQTNkU3FVTE02?= =?utf-8?B?dTNPMSt2Rm1VVCttd0tWYlZpY09RVE1MWFFpTUY2NXV0L2hrc2tJN3FkeitB?= =?utf-8?B?VjZrVi95QytIQ25rOWJTOHZieUxVSnR2dW5tcEIrcmUzUTVYUHRqUEc4UDRj?= =?utf-8?B?bHF5c3hvdnQ0OXBpWmpBKys5NUNQcHVScHhWYzNaUkdmL3lySndKOHZWV2l1?= =?utf-8?B?cjFhakNMditVVjVaZEdQRlIrVWdqSG4xbUg2K3VuRnJ6dk5ybDdtZlVVLzB3?= =?utf-8?B?Wk1SSWYrOFRJeEh6Ny9WVG5rM05LSm9DMXpqQ3YvTTBYeGNFM0UvSE1QRldq?= =?utf-8?B?Q3FGY3J0YTIyMzROZUZ2QkpPYWRWZmxTMHhCSytYK1luZnpqSmMwUk05N2lC?= =?utf-8?B?Nkk0Zk5Lem5jcWhZOEpwdmY0bk9xOEhRTkJEMlRhOEo3YmdSQkJValNSNm9C?= =?utf-8?B?S0laOUxkUUNIRzRJQ0VxdVZJeWNCWUN6V29aNk9sTmZqaC9vYVowcWQ4d2JY?= =?utf-8?B?ZUNCWVBHNHhRRmRJS1Y1Z3BpYnNyeHRUYUM3TXZyelQ5RHlzUzlRdFVQeVBu?= =?utf-8?Q?ilmaO4be00eke0m/52rej7i/s=3D?= X-Microsoft-Exchange-Diagnostics: 1;SN1PR12MB0158;6:fXLD0MONs4jRzpC4eRJOYbEra/3Oaye2r3gDNWvKHJoERXMjKOZ+oVx8FP4vWBaXthN26tQUuI4oDWwJVWSsl1pE+rhsBrEYln5xEV8j3mcH4Iv4majUly6znOn8R2kO8cvJMqSmFotz632xX1tZSaZRtt/9kcAGwiUtFjy0OSztiJeklKErwoEg4Ujzw7o2EFiV5iggxnoLjQX1fzvCWCMJbrVAVeWQQ0IPnhHbEIwUENk6vga01DW5KmBMmOnfS2kBJtouJj0rzhwc5oZkbrYDE85aDUAsfp0iqtqfCRw8T4BbIxTY/zDKsI32CGTMW/iCqlZuymsG0vcOpFEJEg==;5:ki3OcTDCmBMJ/DkXpZE2jHmNpTBkiTEEL4idd5nJnFm9vrydgsJgoeU0yIlRApC+VbXgeHuBTnLhP9q08M/dzkLScgbvu0GmY1tjmfhDm1VojDVfiwTQUjAWTPjrNcmNrDB6fYB1iMIhh1fx5CDGTg==;24:RnpaLfsan13Vw9vHmLOFLakQWD3xAlMkmc6hiI7bSUi7LqIhVnrXigB7cYywUp2ajobBIpe4bGPHhxAqEPhB9ccYWeLof4AicuWc/uADYHE=;7:XCNn5KsWOaGR5ORHiwF5BiLe+XsbvtvsNFhmQr0EPqG6UOkb+S5xdUO7b778+hNtX3nE9pvyYsdx31gOEVNfZFKwEBerlqWqz6PmNnSAVxECH3McmHXzB8CB4Myj4P999UkQAkYmd2Xb19Z2UesGIMxljaXVc9QuVZV18BrSrfb3PjRnhxDy7qi5MqhHK55nILUjgLQsiqd3NtxpkWEOeoJ2LOw3Td7WzZLNqjEGZGk= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;SN1PR12MB0158;20:kOLj0NAdhVTU49m1n1JS5H6gZQ6Bv6/c8gHtlWnQkvwDJf9SVhAMCHaj7g3cKdJUA9FNdH8hHerDtq8XiyiOvFi19se58NpUanstACXkQhberqxu1cQc/d4sUrrQ1U+noqcBXbj7tY9qGSwcpEtMWZ9tTcxA4Ee5VWo19PiLV2NK0ez0FPR34zjxViERQCaYMOfbMzYJ53G4tzOr0Uva/v2yfvSoszhCXl1y2r4yqVtznCLJ/PLuZYOsT9IOueTa X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Sep 2017 20:47:15.8413 (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 Extend kvm_x86_ops to add mem_enc_enabled() ops. The ops can be used to check if memory encryption is enabled for a given VCPU. Cc: Thomas Gleixner Cc: Ingo Molnar Cc: "H. Peter Anvin" Cc: Paolo Bonzini Cc: "Radim Krčmář" Cc: Joerg Roedel Cc: Borislav Petkov Cc: Tom Lendacky Cc: x86@kernel.org Cc: kvm@vger.kernel.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Brijesh Singh --- arch/x86/include/asm/kvm_host.h | 1 + arch/x86/kvm/svm.c | 6 ++++++ 2 files changed, 7 insertions(+) diff --git a/arch/x86/include/asm/kvm_host.h b/arch/x86/include/asm/kvm_host.h index 3195a8cc517d..cad9672fbe8c 100644 --- a/arch/x86/include/asm/kvm_host.h +++ b/arch/x86/include/asm/kvm_host.h @@ -1076,6 +1076,7 @@ struct kvm_x86_ops { int (*mem_enc_op)(struct kvm *kvm, void __user *argp); int (*mem_enc_register_region)(struct kvm *kvm, struct kvm_enc_region *argp); int (*mem_enc_unregister_region)(struct kvm *kvm, struct kvm_enc_region *argp); + bool (*mem_enc_enabled)(struct kvm_vcpu *vcpu); }; struct kvm_arch_async_pf { diff --git a/arch/x86/kvm/svm.c b/arch/x86/kvm/svm.c index 0bb62a114a20..208c8abf0bbd 100644 --- a/arch/x86/kvm/svm.c +++ b/arch/x86/kvm/svm.c @@ -6631,6 +6631,11 @@ static int svm_unregister_enc_region(struct kvm *kvm, return 0; } +static bool mem_enc_enabled(struct kvm_vcpu *vcpu) +{ + return to_svm(vcpu)->vmcb->control.nested_ctl & SVM_NESTED_CTL_SEV_ENABLE; +} + static struct kvm_x86_ops svm_x86_ops __ro_after_init = { .cpu_has_kvm_support = has_svm, .disabled_by_bios = is_disabled, @@ -6745,6 +6750,7 @@ static struct kvm_x86_ops svm_x86_ops __ro_after_init = { .mem_enc_op = svm_mem_enc_op, .mem_enc_register_region = svm_register_enc_region, .mem_enc_unregister_region = svm_unregister_enc_region, + .mem_enc_enabled = mem_enc_enabled }; static int __init svm_init(void) -- 2.9.5