From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752302AbdLEBGo (ORCPT ); Mon, 4 Dec 2017 20:06:44 -0500 Received: from mail-by2nam01on0087.outbound.protection.outlook.com ([104.47.34.87]:63748 "EHLO NAM01-BY2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1752376AbdLEBGg (ORCPT ); Mon, 4 Dec 2017 20:06:36 -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, x86@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 Subject: [Part2 PATCH v9 30/38] KVM: SVM: Add support for SEV LAUNCH_FINISH command Date: Mon, 4 Dec 2017 19:06:08 -0600 Message-Id: <20171205010616.5958-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: BN6PR04CA0055.namprd04.prod.outlook.com (2603:10b6:405:3b::44) To DM2PR12MB0156.namprd12.prod.outlook.com (2a01:111:e400:50ce::19) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: c2ef904c-8167-4336-638c-08d53b7c6d77 X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(5600026)(4604075)(4534020)(4602075)(4627115)(201703031133081)(201702281549075)(48565401081)(2017052603286);SRVR:DM2PR12MB0156; X-Microsoft-Exchange-Diagnostics: 1;DM2PR12MB0156;3:twukdYTEibW2yl4Qa58pEYvGq4bmY0zJLDuNp1Lnyx93dlDNVPu3Mz5kGp7P6eeUubPVPyCkKOWU6WyGSucXAVOPi74tKCHlq9viSlyAIK6f08/rJAymY8bPqonczYuEPYt/sTf1S3G15W4v46fJaFStLQ5aqVHQPZkDahN3X6t61E6L/KN+lpWpPYRDHHz0j3WctWuABo4avYJWrqVZ+qXuHAM3ciz9JJrxD1ukf1NeWDczIG0LIt7lm4T5HB6D;25:zHkLGqCwsjszj0ag7oYT769sz0vY/UWX0FS2bVldWebyjTVxVGtKY1GjhpZunF7AVpYQ5bImp+SLQykmUg4J+2YE31A8N5vDeLsVCbCYuUf8+Fre988raZOBHd6PpM0PcpePUVCpUEnfBRCJvPMGCoVrfTvo7+NiXC7EISJFXAXng493LaHbW1G/rExgNEP3ylkLE81/Dub4kcI4sTj8/cV0aZJg/IhEsw+YMlpiW+Q+mVHAsZy4HiXWOhkSKET7qGAov6fad5Jyp6IePeZlHoXSakajc6h55VgNIS+iHRcQFiH4/7RswtfNf0/5co/rna/sRy6K7GVa8jnnaYR01w==;31:i9GKAPVVLzm6VJRIIFDolfPgehgdeDqz1ZZ9Bz/38qnFaAISgpUBvn+EJmxEiwIWB6hK5+Q26Fv3uBFouB2nsCwCFl/y1MatVEZz3VhgjmnHZTHNTyq29C8YKxhsJHDsM13ZEbmr7kFgEJdyvHRITxTJToHjx2N1qo5ZiFq8FxoJwSR8CpIrks0NbmTXmf6+g9tTWLHOVU/7NY/bxaBWWj2Ye1ajgFpPZpFlHSH0g4Y= X-MS-TrafficTypeDiagnostic: DM2PR12MB0156: X-Microsoft-Exchange-Diagnostics: 1;DM2PR12MB0156;20:T71bd2VLd60y7b33I8K+KYJrmdhSX2W3UnDGVdQde0ix+QB0y+F9UXnMsUgwQpyOpaFJP4SUKwA4T8JAXUrHSUnRPFf77HSCFDv9/L6sfSPZyDIscVJJJnQNyAe3yET2hrEoLpBRle20da1t41oWHif1oo36HJZvPEsdcDPu8nCsZGwwrNUCkSyTDjIGEYDOFRRKjFgGiRfEbiDu742wuUlkKBxhgyn9O5nodxifwKZrviE6hG3Qg7TXONQheu8SGpTHD35SCUNa8/ALu8j9zbXi7cH+PEswXpGyE5YLWOCQrdV2we7SyliaE5NlhvFdCkXZxx+CSGgy2uP59H3v3QUaxWbwh6dkdARPRV1uH5+V0UidsqooPoRJjksv+TX5OqAkpI76/H6NZb0VbTtaVZ9PGRP3ISUFmv9ZtIs9o9KmjdtwWyLNdPPXCdtj5hUFqOSG1el1YRj9Sj/lUP81+5GYj9qCcIBXrGEsnic0VuVWIIsgr6hyzK1DKecND9ay;4:2UpQEHpTTpZHNCNNXKksVVM80FyvQyjQTR5aqSHF4fOyhLqJG/nRsjRkdCrrYhcn46sRH2eYn01F9uvKaCSh5WNmPxS6W3IhCYAeSAysjFFM4Q7+q6sSgE8JK/OIUyh7iOzfiZlMd8tP0yJHTIeukneetG2POlJtddajwbcIzw+X0/UwfCmM8RBSPkykn8YjagA6zipXdoiEjyuLZOnS9AUkWQkurMglHYRrw/XWFwcxj1XffKE6n4bz47WFidGliGSmuwyWjDswCzNI7iChki+NsWFP9ZU5pDnpcTwd4X+eCLAkZC1rSoKsCZzLD1pXaQPt9rJ6UIZLe5zyaO6svw== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(9452136761055)(767451399110); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040450)(2401047)(5005006)(8121501046)(10201501046)(93006095)(93001095)(3002001)(3231022)(6055026)(6041248)(20161123562025)(20161123560025)(20161123558100)(20161123555025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123564025)(6072148)(201708071742011);SRVR:DM2PR12MB0156;BCL:0;PCL:0;RULEID:(100000803101)(100110400095);SRVR:DM2PR12MB0156; X-Forefront-PRVS: 0512CC5201 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(6009001)(376002)(346002)(39860400002)(366004)(189002)(199003)(316002)(66066001)(50466002)(23676004)(47776003)(25786009)(54906003)(86362001)(53416004)(7696005)(16526018)(36756003)(8936002)(81166006)(6486002)(81156014)(305945005)(50226002)(7736002)(53936002)(5660300001)(52116002)(6666003)(33646002)(4326008)(101416001)(8676002)(478600001)(2906002)(7416002)(2870700001)(1076002)(189998001)(106356001)(6116002)(3846002)(68736007)(97736004)(105586002);DIR:OUT;SFP:1101;SCL:1;SRVR:DM2PR12MB0156;H:wsp141597wss.amd.com;FPR:;SPF:None;PTR:InfoNoRecords;MX:1;A:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtETTJQUjEyTUIwMTU2OzIzOnQzR2dDN2NWZys1QXNtYWEvUm15OTNHYVVQ?= =?utf-8?B?Nmxyc0dDcDRpUEoxZTJyTGVydmxOZUd2NTB6cmwxM0xYRUc3OHVPMEZNM3l1?= =?utf-8?B?bmJOTXExSlJBUWdEc1RuZzQvdkk4aU15TVZSblRkMk9ZYkpYZGs5WTdqTm5D?= =?utf-8?B?RWlYTVJ1ckYreTRST3dvcXJORmpOWXpLSXBiMnNJUkdIQm5DSVQ1ZmxVL3pR?= =?utf-8?B?eHNDci9XR1ZLNlBtbys1T2o5MHdXTUhtTkN6L0dpY3pxaDFBeW9hbG5jMjB4?= =?utf-8?B?TEVGdkZjVnZmQmRtUk9xeHNnYWl5NkZnWjVWZGlNYmhkckJBL3BSYXowNllp?= =?utf-8?B?US9iUjZUV2liSHc4SFJycGRyVzdoQVUrdVZmYk80S3ladFlTNC8wSVRlcU5X?= =?utf-8?B?bU44UGVERmNvMjN2MnIza0JVakFxUVBzb0ozU2QvSEx0RENiY2hQSytvTzBt?= =?utf-8?B?bWFTc3ROODZzOGtnWGhRSjd4bWQra00vSDk2YnY3UU1ac2lnUm9lSE01WmZV?= =?utf-8?B?Wk5nV1VPb0cxUk5ORWVoS1JQN2JRRk9LeG10QmpieDBVc01FU3N6eFMvY3Zz?= =?utf-8?B?Mlc2Umxzem40S3V6NEUzT1hZNmtyOFM1bGE2cmhPcE1sdHF1Nyt5Y05TM05O?= =?utf-8?B?SHFPeXRPcGNIY0I0aVdFVm5YMGhZOGU3ZVJnWGNLZ2tDQVhTQzJ0TFNPTitn?= =?utf-8?B?YVJqMkx5eUhWOUJreVl0VThRVGQxWUxidzNUOU8xSm5JSkYvcFZDczVUcHdI?= =?utf-8?B?c0kwQnlIc2YvdG8vSCs2MzNGSmRnWEhTRHRLOGt4UHorNmNleTRCUllJbWdP?= =?utf-8?B?YnVNSUZDVmE0bnYyemZtaGRTdjk0RWpadXl6OGhBVDA4RXZRSklLTFNxMUFX?= =?utf-8?B?VkJqZUtabW15djNMQzFkZWx3eU1oa1k0dytXb01tc1RsOHVnVWk3Wmdyd3hN?= =?utf-8?B?UVdKV2lHOTlHVEYvR0Y3OVRJM1U1cmhzQ2JUTldDQVlWZVRRODMxYlY1TEVo?= =?utf-8?B?dW1BU2xMQ1BwY3RmK0FjSUhpd1NvVUVPdTlMbkkya1RCNWRSZ0pVNHVZYWdo?= =?utf-8?B?eE1JWXVTZEhJVXdmaFNvdWVOTk1MajJnNnYrc2dKMXFpWUE4QmdJc25QSDNv?= =?utf-8?B?bVU0YjRPZXBzWVk4dEJ1alEvZ1JvUDdoQ3BsamVDYWNCTHRHT2MvWDhkQVM5?= =?utf-8?B?bGhzYjVjYUdrVkNIeWczM0Nja29WTk9KSlVIV1F1dmZYQWtDdUp6eVpoZGwv?= =?utf-8?B?SUh0MDlaM1VpL1Z4OWY2MktlOGthd3FscTBZV3hhazM5TEZjT1ZvTFI1ck9a?= =?utf-8?B?Y2VacE1SMnVVT0ZBVnRONjdMK3JyUWluRDZqd2VYdkE5ZVViTDkrL2J2b25j?= =?utf-8?B?M1NOYmlTZ0lDc3Q1NTlmeVJkN2RTV2J0Q0wyNU9BNFdyTk1oaEpGbUxwZXBF?= =?utf-8?Q?/FW3RiH9tww8FJamRxV43RLOreV?= X-Microsoft-Exchange-Diagnostics: 1;DM2PR12MB0156;6:+OhK4p6qBMmMu+uk4E36vwPG0LFDF7PfDnFi/YlVinPaZ9iaQPavQObk70vURloPhVHcs9BTZOXVcSghiNJJ0+oR5NVsGgUeynRnB7cn+G6nPk0Tzvf4EOVfLRuVMfTv/Iqz7IlQvyV1J+Baqjq+QECUVSqItmFxA740iRFaTEvaYXoe+xnW6CagOQCUm+azxoKevLekr7oOLeB6F6zC3JarAOjcacyTkspzN3JqBn7+5Ua5xiHxiph6l61udTYCUTcCuq9m0/lCVfAwppN1kAp35TSooKSj9gKSFGM7B5iyzQRJTvUAL0jIT1mFTJ4WgyEfVcU8A34Os6vmo4RhW9/npxC2KB8g5yM946wY864=;5:u9DqOpAhJNr053n14qAHE324zEA2FNX78JwRSEoLN4ak7ypSU4SRQoSc5g3vcSPrqv5euEmoH08InazgUhTRfyaF5PhtXxQ9qvVTq7HbC5VvfWuOU4B1At5euoljLU9ynqgS26T8Wu8ehg9ShF0crK+MxRg5Nz0PsOjYOoSI/1c=;24:KKc79H+eobwLKkKluruaaFEfm4lN/RPijULqXvbGIw80L7EkEgnZ2tW80wHUziD2LS1RsdAOx3Ym8hq13TRTGG5vrHWAM6Lna+X9k3OCw8Q=;7:PePhw6A96o8Km40xcz+BVi/HEo/0mV2MqXtzlj0Rzfv0X+oSVqZ2LaluURJDfwkwnPeP7YTnbbutX31c9Lmox6qKlYuRmjPBjaM0AVsw0rquj5Cxs2+hXMAQlUt8QYCKzqo5u28fwSy6gzJchhrw4/RYq/wdNJtkPAS7GqvdGO0plZ1g/5p7s4ZnT7WGwG4tpQXtPJsBCBuyXJRuGawq1B8phxI0csDR6/YSXXTO5IWu6BPTxnM0V5N0Buh4ecv6 SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;DM2PR12MB0156;20:QrobFccw/CCIT7k1XP8gmQiPC4ZH6Tr8VvN1gn+LbkS09B05B65bjjKEI7COI8L0Fd0oWqOViQ4yYzUm8HdWywIAE1vmIujSZN8LN6xTSTB8rgKEwChr0+wlq68L8IduJBBtSVS3d3zEkbLt7Sylw06tlJU0phsHR91a1VGQCIMA5a5HhEuhXsu56wJfygAfBE9aYUtMLH/M3/cDiwacH7eacjrENFCJAdsbtKNMAJxHouF7OMqtDURVGDcO88nZ X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Dec 2017 01:06:32.9911 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: c2ef904c-8167-4336-638c-08d53b7c6d77 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM2PR12MB0156 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 74e010e6b5b9..6a8d81311e9d 100644 --- a/arch/x86/kvm/svm.c +++ b/arch/x86/kvm/svm.c @@ -6113,6 +6113,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; @@ -6139,6 +6159,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