From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933004AbdKFSR5 (ORCPT ); Mon, 6 Nov 2017 13:17:57 -0500 Received: from mail-co1nam03on0077.outbound.protection.outlook.com ([104.47.40.77]:18934 "EHLO NAM03-CO1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S932700AbdKFSPp (ORCPT ); Mon, 6 Nov 2017 13:15:45 -0500 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, 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 v8 30/38] KVM: SVM: Add support for SEV LAUNCH_FINISH command Date: Mon, 6 Nov 2017 12:15:22 -0600 Message-Id: <20171106181530.68894-1-brijesh.singh@amd.com> X-Mailer: git-send-email 2.9.5 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Originating-IP: [165.204.78.1] X-ClientProxiedBy: SN4PR0601CA0012.namprd06.prod.outlook.com (10.162.115.150) To SN1PR12MB0157.namprd12.prod.outlook.com (10.162.3.144) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 8e17a34d-1fb7-4f08-7858-08d525426312 X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001)(4534020)(4602075)(4627115)(201703031133081)(201702281549075)(48565401081)(2017052603249);SRVR:SN1PR12MB0157; X-Microsoft-Exchange-Diagnostics: 1;SN1PR12MB0157;3:IpUU875iMD3HDZ3izFvKE5z0C1p1k7HxfD0bc1+Fkv0UqPBlXyvFpVUEfZb/5opzT8oP2eL8uti4F31BrIHjGLd744sMlw9qjCibGy5uaXJGyAUbGzn5aWA9hRaXBmm1ahZQGlwvpB6ahRtqKYRPZ/O5LbPDm5m4EQehYGAgefJl0BHIUhj71Jqb2qdODPF6JPfS12S/4VWCUNsapPTyagwvgvamFdGLrF881Sq+Vu0nQM5TNtuxDERWGsRdAxJU;25:tJBu7wnlXiQFnSUm7H2B+nhUVHcbOLC5PoLh7U/y69YsCtvdd5TZKTvupDtLSHFLMdoC3obI6i5uwXmW77vv92XnUbEapeSj8ljlT3peSEd4rocBMJBB1aqaDLL8l88qCg38r6La4mMqO9s8aNtTeyil5WIGoNG7QrdYMtVx+F2T9e/MeVv1aZPAN8XAgB2hGFfK8hxuRDZOy9XxMwil05/OX60glvnQyPdFOkJuqIV4UE/NilcpZuRl4YOmLAg78Fo/N4ynHS+c/noIPvGyQgSBvpx6U+yovf+SF67YQDWMhATNClPAXacGvhLNhdaAAhr9bF+yAeVzl0Anua6q8A==;31:eXy/md84ApP5BeyagoNUhFPZANJHATBVmXoRUbnqxSpuL7/cpT+8Pe1K0z6EUFXsNGEcwNpQWqpFpLu8TmL+GICxjL5XA4dfPiyihtvEWfR+vYvv7KuTWS+Qy4eCXWYwfsPgrUNKNGOAntOR2SOfjm+X5VRAYPGa5srs5b3F3naRTUG7cxqJuKh04Zm8iV/7wf/Fx6pr0Lgs3zro2LgfQr2LDRPl9M7KGD/4ivOBtAM= X-MS-TrafficTypeDiagnostic: SN1PR12MB0157: X-Microsoft-Exchange-Diagnostics: 1;SN1PR12MB0157;20:gYmvrRteABQYVZQgobRf62wStAgXGP11L1YKLzH23hRt7piXDCd1lnbCVmKSfRc3VBqEcenIYrV2OzmOs5Z5OH8H5/KgdZbk9+HIUtC9vKHR+97jYXoz7HdTv1tW8LjH+SiJkHpZOROUW4PLmcK9gpHkW2iHrcnV4+dqu5l+kO2qkqHM7oSyt1aXKj3VbCl+VcEtiZSj2YkO3P/QjgCJ04IxOMQ8B/+f37lM8aFJ+oPY+349z67ktN/cTmgjEXLZmthAtR3JdM/r74w3yWqFDsUPv61IOatRsfENpLfUy5qpfgH28rqND6/3E2DNjj129ih7S5Qj90JPIYJ4TpNyIbPef8vCNo+QtA6DMgbZ2tfRq6du95RzM0Xq2HA+KsIh9gpVrytj9hRyZwU/I1zeIwT4RbtYKOiwaEZQShDpgFwkvxnHBxjM6JD/fMxIf7tBV5PoePvBAyXUDRtlVzhtwm/u9UfCzj4596ndaKPeWnyUZJDsSX7ifGruZpwPMxAD;4:XYu5Sh3TPOXcMB9J7bAabwqaTX797SxhuKC2CRecpPbcEOzPMWjVAlCYa8KSM0/KBM+BDvl1zLa95UbJ6yD1VdlyCvYemtRWwD2xLFSrGXO096MI+0j3UpLFoz4s6SlWAbWBuRa+61L3Ss6eiEvOtejmiAOkGoB6L6hgU9SL7VEHeVj54FOQM3FNTTca09pKpDagdCT32LtJfLINxxq+jnj+nU5PM7hYT59SMlWo2yhCsDD+VmXkRlHnudMAVhVOztF82+Gm3eRhKUdWpizXGUwOJ6wn4902tsAnf57dcmgnpoyY/wLePjAvh2EqX88JSb1ZdM8X2rMXNVGxQR7FdQ== 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)(93006095)(93001095)(3231021)(10201501046)(3002001)(6055026)(6041248)(20161123564025)(20161123560025)(20161123555025)(20161123562025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123558100)(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: 048396AFA0 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(6009001)(376002)(346002)(39860400002)(199003)(189002)(25786009)(1076002)(3846002)(6116002)(316002)(305945005)(50466002)(2870700001)(86362001)(50226002)(4326008)(23676003)(575784001)(54906003)(50986999)(2906002)(97736004)(53416004)(101416001)(7736002)(68736007)(16526018)(478600001)(53936002)(8936002)(5660300001)(6486002)(33646002)(106356001)(105586002)(7416002)(6666003)(36756003)(189998001)(81166006)(66066001)(47776003)(8676002)(81156014);DIR:OUT;SFP:1101;SCL:1;SRVR:SN1PR12MB0157;H:wsp141597wss.amd.com;FPR:;SPF:None;PTR:InfoNoRecords;A:1;MX:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtTTjFQUjEyTUIwMTU3OzIzOlliaXZBQ0xGVGI2NjNFaFd2U1lCWE5vMVkz?= =?utf-8?B?anh5dFBXY2Z6ai9kZGM1TGc3SU5WVndiaGJXcWc5OVlnbG41SktpNzJ5WmFH?= =?utf-8?B?anFYbHVUWlFqNWtxMFc4dm52enJLMDZzZkpaREllMnd3Q1dZZCs4RGp4Q1BK?= =?utf-8?B?N0U3b1lNRE0rY050NnljVy9lK25qODRGNGRWajgwRTl0T2FRK2VKelpmcVVU?= =?utf-8?B?aUkrSDhpL0dZMlBvVWQxNWIyRWkzTldqOWNIZlJiNVpKTlJtdVV0eFBZYzFs?= =?utf-8?B?U3JiL1RTMFhjTi9PVVNybmNQRGpkWU1OUWJBK0JiSERhVkRQSXFQUU90K2sx?= =?utf-8?B?Rys2YjNSWi8zcUxvdWtmVDU0YkRITzVjUVp0dGJtdUx3OGhkemd2SGJKQlN1?= =?utf-8?B?RTUvRTdaR1dGNFc2NEZ6RWpVTUx5bjV4bmtHQUk3eTVpUExqc1ZEbm5WbmY2?= =?utf-8?B?U2x3VU5CZlhLZEhGVGx0UHE4OVNNZmhrdHR6TDF2cTk5SlZPcGx5U2lFS1BW?= =?utf-8?B?cGlrM1BmeW9vZDl1Y0ZkOEdpbmx4bklRUVkzVVhvaE90ci9IbzVoeFl1cGxK?= =?utf-8?B?VFdsNmRRakQxMUJCWm0rOFFTM3AvZXZkbExwVjlOZHF4NXpkQnJaT25zL2Jo?= =?utf-8?B?RERuNjNhb3ZuNW1yTjV1VzlMYWxPanl4c1ZlT3NrUzhOcm0zd2xEZklYVUIw?= =?utf-8?B?TU5CdkRONGpXWGpoN1YxaUN5dU1scHdtcVJtUVZjbVRwMzEzVmRtdnZtREpt?= =?utf-8?B?VFQySnpRVENVVFhEeHJVT2wxL3VxMUR0UHdxV05DWWxlQ0Y1bzVoWVhFckk1?= =?utf-8?B?NHR0c29lM2MrVE56NzY0UStXejJyNnN6cUJrQWUybDY2QU5wcVJHRWtVbVZC?= =?utf-8?B?Nmt2S053QTZFMjdIenNVTDRMMDdBNlZGbkVYZ2JoSStaVm9LVEtMR0dzYWpZ?= =?utf-8?B?akh1K3Rua1R4eVJjMUI3aUthWHZJNmRkbjBsM2RYeXpZenNVRVRsbGpEVE5y?= =?utf-8?B?d0lGNGxuczBDVVBUTzVDYnVlZGdmVy9ja0o1SEl5bU5mSURxN2FUUkRFeVl2?= =?utf-8?B?b3NGOTNVeGZ0RE04cm92VmxtSUVkUldMSm54ck45SUgwUUhxZ3hOcEJHYkpj?= =?utf-8?B?cXZGUEZpNTB4V0JsL093c01LVE9UQjlXK29KSU9YUldkNGJQemdiS0JkZjZG?= =?utf-8?B?U3hNU05tUFZTUS9sY2FiK20yYVI3M2l1b3VaZXZCOWJ6QjUyYnJDMXhQdURU?= =?utf-8?B?ZnhzbVVDSXJjSTJJOXRhM1BSR1pGTjZSdWs5UlVpZlJITUEyOEw4ZG1GUWtl?= =?utf-8?B?NnJlNm1lQWdER01HT3ZSNVhnQ3FVdzd4VitRUytKc1pUS1ZUV3piYlpLV3JN?= =?utf-8?B?VXEvK1E0elovdmZQU1lxVE01UVp6L2RxRUNCK215UjEvMDhvN255SHF0YUhN?= =?utf-8?Q?mNnvfs=3D?= X-Microsoft-Exchange-Diagnostics: 1;SN1PR12MB0157;6:ymGd1LjJlZxZYhWaEufcsUwq9vkDmVton8tE4GbjHWg5TAeJgagz2rpfnpHeUEgWzsww3OvIuNxDF6immuRFLN5K0cz/k4bT0A27rQbdWT0QDWWW3cc7X7RQ16OX+dvVGsLFaEeFZLJWDWw9aqVOUAAB7YCfxLJWoRNHbpIp/EJNdYDwm75t1ttxFxBzjJU7ve7cN65ljTaq1LvMoUPOKZc/Y1hraEhsRWKFvxas8Q6k4JZ6qjFuziI0vWt7GEQgGDF8dZKVMGw2c3O3Jr9xPD8oJ6qaj/W/QV7UQzJaTGpjT2pQJ5h9SDxmtkqiVxotKI59+KIE+K0Kr5/qCw6owkgSQUjsbjTkADMA4Yq/6QE=;5:qJ/3IWsSQZR3TTWV8bys8YhSWUSr8WG7D/1NsDcfD9qZdAy4BB1Ic/N7ia/Piz2IZXxK3aOpcIOi+LeXLQqWMsvXN9PH2sO8h+YQlKNHMdyyWX3rmnTBfo+88bsRjPrXKt4l+SdR1pEEw+hm+/s3WjzRtNfVzJPoRVYnbZvpwBc=;24:U91wvoE5lxZcy4AZ/UPoLdYEP1zMNwOcXSOXJl4FUO6Yk5JwkkRZSyfJZsh54r83JOgKlIGiY8/P9lZecvZptvEmtM9gBgbvQFEDbGBc+QU=;7:TjKIlPv5ElMDp+gUTb35Aj7+m+yiY8a0tPWFWPlTqcqatAwl+9Pp1aH59i9gFQZ9djjKOkN7kG7ELRJPU3hUC1Mlj6iwkN+TQM5LD56ErH6esGIRE/agreAfc+xm2aZc9XCJltD3wby8zcdMv7YJRNr/RPNyjoaZqfC6M96Jllo/NabzOaEeIiWQQhAV4VoObcZQgPhK8DOiRFHdOTwFSEFbLe6LdxJxJQ/o6Str3qmD/5Kuwlyr0x4UPb+ylw9v SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;SN1PR12MB0157;20:1skKqDl0r/HDCEK4iJXfqskZ7BZt8hwVJE1k5FzE7+vMZr7jiJuJ+N0iO+1n25yTqejV37nlcWG6cUXFYOhCX3/79DgBUAIk78tKehrbCN5B/wON5jGSIAKsU7V+NvQGHbAdW3H/4ELacHGpWgvfvH+FDlCGByqLRycVnyS7VuEaUHW5dSdPWg9L/bx9ryFySJ3I0FKI6W3Y7TzLLrxBhgxFI6BLaSe/VrNQWWtRYYntaN1YSI5yHjP77z201JB7 X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Nov 2017 18:15:39.9579 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 8e17a34d-1fb7-4f08-7858-08d525426312 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 The command is used for finializing the SEV guest launch process. 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 Reviewed-by: Borislav Petkov --- arch/x86/kvm/svm.c | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/arch/x86/kvm/svm.c b/arch/x86/kvm/svm.c index 3a5ae4fd7103..6bce4b9a0bfd 100644 --- a/arch/x86/kvm/svm.c +++ b/arch/x86/kvm/svm.c @@ -6073,6 +6073,26 @@ static int sev_launch_measure(struct kvm *kvm, struct kvm_sev_cmd *argp) return ret; } +static int sev_launch_finish(struct kvm *kvm, struct kvm_sev_cmd *argp) +{ + struct kvm_sev_info *sev = &kvm->arch.sev_info; + struct sev_data_launch_finish *data; + int ret; + + if (!sev_guest(kvm)) + return -ENOTTY; + + data = kzalloc(sizeof(*data), GFP_KERNEL); + if (!data) + return -ENOMEM; + + data->handle = sev->handle; + ret = sev_issue_cmd(kvm, SEV_CMD_LAUNCH_FINISH, data, &argp->error); + + kfree(data); + return ret; +} + static int svm_mem_enc_op(struct kvm *kvm, void __user *argp) { struct kvm_sev_cmd sev_cmd; @@ -6099,6 +6119,9 @@ static int svm_mem_enc_op(struct kvm *kvm, void __user *argp) case KVM_SEV_LAUNCH_MEASURE: r = sev_launch_measure(kvm, &sev_cmd); break; + case KVM_SEV_LAUNCH_FINISH: + r = sev_launch_finish(kvm, &sev_cmd); + break; default: r = -EINVAL; goto out; -- 2.9.5