From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752556AbdJDNSa (ORCPT ); Wed, 4 Oct 2017 09:18:30 -0400 Received: from mail-cys01nam02on0084.outbound.protection.outlook.com ([104.47.37.84]:31550 "EHLO NAM02-CY1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1752366AbdJDNP0 (ORCPT ); Wed, 4 Oct 2017 09:15:26 -0400 From: Brijesh Singh To: x86@kernel.org, kvm@vger.kernel.org, linux-kernel@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 Subject: [Part2 PATCH v5 23/31] KVM: SVM: Add support for SEV GUEST_STATUS command Date: Wed, 4 Oct 2017 08:14:04 -0500 Message-Id: <20171004131412.13038-24-brijesh.singh@amd.com> X-Mailer: git-send-email 2.9.5 In-Reply-To: <20171004131412.13038-1-brijesh.singh@amd.com> References: <20171004131412.13038-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: MWHPR2201CA0056.namprd22.prod.outlook.com (10.172.59.30) To SN1PR12MB0160.namprd12.prod.outlook.com (10.162.3.147) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 1b75175e-88cf-445e-6cf5-08d50b29f7f6 X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001)(2017030254152)(48565401081)(2017052603199)(201703131423075)(201703031133081)(201702281549075);SRVR:SN1PR12MB0160; X-Microsoft-Exchange-Diagnostics: 1;SN1PR12MB0160;3:PRh5Pavf94DTjTpoRt0yWahh5nIAtLFXYN18ND/Noq8BGbW4jMHG9zHFqe2eMTgAsSW0IsNXPKhUKYnFgcP5wosrE/2lBtPHjKlJOA+gY+w3vLf/UG/Dpn8DiJygAtsAsErAfJVl+n4VfvQlbSVs+RWJZVL6gp6REpB22Wrfh3bZ92cLHhRTSqv7eRTkSePKYna/8cODbNvLWD6MT6ziRfxj7NZfdLXXCyflsRsF7z3Mh1MVkiikD3spsI+OOgdr;25:cJuEZxq6hQt39/vi+2FmOqG912p2WlYmoB+XVXjqKEN369FaJL+y3/Cw3bb0e/7HcONEcyiusSKJfOxwJqUZKUc0xSazF2F2He/g5akJ/DCqDn4cQKjZAiS+705R3oA8w2+kukZB0AROZhXj+i2B457V7ZxX60PqUP0SmZtBf201UyNTNXG8wGOuH2Mp3pb5lfP/SyT1jAvzilyEzY5LJJFiKxztB7AGH+9BF+upgJ4z/147LbmBsKeRTbjJ8ZffvoScx7rNbsq+OG8/d0GtSCDgz+6yDvjCVIEM558GiEH8/eTaMHKZvHlzsCfcyeNRegIGYsorWJLkXY3sLCQOMg==;31:KA1HAoT1squZYjbSuluH1IiLrjY7N3o3AXRtaCOACsC2w2g6UkXgFVbwdzr4JC/SMqGTdQhtSAhAuO2R9o1Z4meLx2lV7dxgO2dEaI4i6SBtUgsU/J8EALoYlZ8PTfrk8haRHsmmQ8gNY05XiYtpFMxkT2jV2AG+waCvmcqZoQhROX6f2nkx792yUXM6Iw1a6rHIQPKEEhMS7yB8L2Q5xa8noHuONE3lENPumPn/0f8= X-MS-TrafficTypeDiagnostic: SN1PR12MB0160: X-Microsoft-Exchange-Diagnostics: 1;SN1PR12MB0160;20:HwDUpn366XL9jHT5HCI50gYdz5krsgbTRftNYyuU6QspZdnKKtFvYLP0zLYtGAkzOpG0d4WPvBHjYyH5mGZeSxox2c498AJ7OnKq+kl/JEccUFh03AGkJZY6+EIemPrbbxBlfRYKsBrqN/oejJH/ZldYCqPBsAyt4JJKj9yaHXXRUK1u9hcun1HVFb+yS2Ziyv62FqHWxq/bakJt+KoTcRw0gjGvw6/ruGqvTr+wuscUTKuw84iEs4fIEh0ORHegrBZPtDPT6pvjrJmPggCz338IlUJ/fUtQWeSzz924h75BGUqik0z+LTL4iERbsin2hDmb+icbejOMPZp679hkRVzfEQnVaYBVwDKf+5pMZdvDhLWJw4fY5gYplHK8SjbFchmsuw+W88oE2qNrWteJFnSoC3LCqhgHrMu4ne8OBiU/I2QKbFbTF7TcArRaN8IM7TUMtMOGSnjEPptV8TdOINMvQ3KTrx2G7VUd9LMKwMq/N6/S7QUnpWMYc/ypagMh;4:cZnhbW57pGgmCbLC9emdck+NtGRvugFjmV2oiDlnr1vFFYEbkYC+DugSqFEknSbaj09OuEl3hnr8jO76O8OreyzG3+upMKEvYW7e6Lg8DGvwp6dOI62U11ekZpqrongkCFVjTWHKDVnpmiU1iIcEN2pYblhlz+1zuxLvWi8V9Gub3vgqDkix98PsxKL3biErehEii601GPzSIkv0JD0rXXLPvWp9PTpnvKi0KkOrIOk9nQBWvEQ+rDMHEtirrR383cN2UqMDJnnIkmXJdQssjCri6ZdeZX9MIdNJOA1L/sM6HCkyJG9Y0hk582iYw1VqbujeqdQ+nzv7OsrQsOgNhA== 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)(3002001)(93006095)(93001095)(10201501046)(6055026)(6041248)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123564025)(20161123562025)(20161123555025)(20161123560025)(20161123558100)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095);SRVR:SN1PR12MB0160;BCL:0;PCL:0;RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095);SRVR:SN1PR12MB0160; X-Forefront-PRVS: 0450A714CB X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(6009001)(39860400002)(346002)(376002)(199003)(189002)(575784001)(97736004)(86362001)(23676002)(76176999)(53936002)(50986999)(1076002)(6116002)(3846002)(478600001)(36756003)(47776003)(101416001)(33646002)(6486002)(66066001)(189998001)(68736007)(105586002)(53416004)(50466002)(4326008)(54906003)(8936002)(305945005)(6666003)(2870700001)(81166006)(5660300001)(81156014)(25786009)(2906002)(8676002)(7736002)(2950100002)(7416002)(50226002)(106356001)(316002)(16526018);DIR:OUT;SFP:1101;SCL:1;SRVR:SN1PR12MB0160;H:ubuntu-010236106000.amd.com;FPR:;SPF:None;PTR:InfoNoRecords;A:1;MX:1;LANG:en; Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=brijesh.singh@amd.com; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtTTjFQUjEyTUIwMTYwOzIzOnZjMVpnQlQ3RHlBU3ozV3M0WXF3ejVZZ2Fm?= =?utf-8?B?WC9yeC9KOGhLTU03MjNMWXBkVk4vRlV2UFFQWXFadlgyWDN6ZHVZSUg2YU1N?= =?utf-8?B?YkNRWlVQMmxLSXFIeitVVGJCYUhXTFR1M1dzZTlxYmV3QVFoUjUyaSswK1Ns?= =?utf-8?B?cExWVFd1S0YydWdkbTg0eGtnRjZkTVBjYVBKS3R3N0s4WmtMN3hvcmRlbWFh?= =?utf-8?B?MUdPUG9YMkN0R21YcFRmUkgrYmRhTDRncHdpU3JhREd6Zm0zWG9yRTJaOTRS?= =?utf-8?B?VU9pN09kekw4cDZrVVBYbEJKQjkyUTFseDNBZ1JUSVlsajdVMVc0VUcva1NK?= =?utf-8?B?NmdLcEp3Vkpla1FML3djbnVUMTZwcFN2ejR5YzFrTmJaZDIvL0s4TW5UYWRs?= =?utf-8?B?WG1xQnJTSWFFTGVRbE9XTEhyY0FFN2JkYVc3RHNQM05aVjVuR0F3YkhhdjFC?= =?utf-8?B?aEVFQnZaYUsrRDFNZ3o2a1JvRHFKOHZUaWdmNXYyZG5HVG1sZWFMUHhGUy9M?= =?utf-8?B?RHFhb2FyR2kza1hkTzNuUS9ORzRKYTBEK1hDTk5DcUd1TzBScnZCbEZJSkh0?= =?utf-8?B?ZXZWZFdlR25USkxnaWRKNlJSSERQV3NiSTBpQ2NJVTRqVERvS3pLcndEQXF4?= =?utf-8?B?MnBNdkttTDR3RjRzSW5WNVF1dW5hR2Q5dUh4KzNKVGVxaFArWHdaTnNFN09T?= =?utf-8?B?RWFwQ093OVJMdXdCMTZmaWZLcVU3TXdZNnF3YjZCa3B6NDJDbWtGbDFvRFlE?= =?utf-8?B?cFNDTDlKV0dyLzRKdVRXWTI1QzhLYnFia1JLVGRiU2FFOWRFUmhZS01CU3hC?= =?utf-8?B?bnRCRjBQOEIwb0NjUWh2bE1MQXB2WCtPOUFsaDdPRDI1ckxnMUl5cm45UmRO?= =?utf-8?B?MGNVRmVmV1ZldGNMV2hWMmdSY2swVHJMOHl4aitOMERETStCYUlrT0FrL2h4?= =?utf-8?B?ZURQYVpLYWozbEdkQjYzQ1hIRzAzQVorQzNxcHV3dzlXM0I4MGk5NFU3b1RL?= =?utf-8?B?d1VkVDNxZ1RNQ1FtWitPM3lPR3Z5b1hiRWM2dlM0YXpQb2t2M0EreCtjaWFX?= =?utf-8?B?bkhZdXhiK2VlUWhSeG5Vcm1oUWY1ODNlbEl6K3dYMGdMN2dKeTcxRWIxa2Vr?= =?utf-8?B?TXllc0I1c2M2Q2ZLU0dxbGMrSmRoVGRMTlFJQ2FURG1McmlPdko1aU5yMEwv?= =?utf-8?B?Q0crcFRRbFJLR2Y1VTZKdGFadi80VVVoQTVzVmpWNVIzRjQvUEtEek42dnF6?= =?utf-8?B?bXlCUzM4QTFtT25GaXdodEF6dXo1UzFFU1VuR3BDcWFqYnJ5NlYxR1hLUHVZ?= =?utf-8?B?T2lwWDViOURzRkVnQ1hnNk84MWJuS25lZi9vVkx3TTZPZ1VWNFJrMEYyZDRR?= =?utf-8?B?bkN3aWxpaldOQjBNREpNUXV0WHh3cjh6bHZkWFVwS1hMek5kTHBXbXl5TDFu?= =?utf-8?B?czRia1p6Qk1MWTlhZ0g2MFFzMTNHNm5GdWM2NDlGMHpIQlUxMjRyRXErVTVU?= =?utf-8?Q?wLyRJM83+ISIY7KoVs0Q+zXqw=3D?= X-Microsoft-Exchange-Diagnostics: 1;SN1PR12MB0160;6:MO0jY9vdL+P7FRD5JedlE4Hd5aHvH4DdmFCsxNStSiPAI8uSqIwFitYpX5fgBCcJg4WyeI5EAmDJlRf0zD0qAamBO+xG0gptPou9mjnlHvcGyxcj1MnX3Mlufn0k8kzYOH4PUpVkS1Ow2hqXJMhkAxqwArIq+CsEaRmFYNt7XtZ4Ex5FWuxHzK8nGhupEq5pCuJiPX5mBWbTydQQvgNZT6yJKzVHfxFTKiaWxTOmNTu6dDsM3d+d/Ud1Wnf15iIzbN6tfhFNlyiPq2hvik3eQFwgLkjdbvBLHssDWbbi9kopvvuuHDDEzlA0oyM9Cl73O7wgSTr/ZjTyV6IcLFv2sw==;5:MzwOqwIvkzT8ZSZtZGqWxGeEjqyLkbyoK+ionTNvmBo6UEFReNq+p5anwm5t4Ic3EagxvZdHIIuKW5axMS72hYjCpCE7CDuA2jFqRxweozuJR+hxs7vzm+QoufCe7vG7O5v4aupSpQxwEU6NjWvMUg==;24:KKShES64IejX7qpY1WKendsM5V4Rom4pFLPiLdfx3Vtwo+UFqXVW9vK4tpJCZfS+ZLkIpfpIyt2tlyp2Cha7u2ZirDzs16ycDf7+iJPThFI=;7:N6pylOEeN5CnCpw8i/Ngt+IuXFecRBpbU12/KBh37GtA105+E72tF1t8ZxrPaJ/4VgOoM3Bk6afkxRUdVIaG6/ADUO1RnjRrp4rTE+kOgR9pInotcPRARYk3ZiIOiVNYZix2K+DJNXcN3/CCataL3yQPuXKPw1s1jCTp9pdmmyxIFHrLIRrPXDwqWwqXJFNC2BRmHQ1sIv/KH1IY3mhqIxb4NqlrQ0U7/SRiQrHZ5LQ= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;SN1PR12MB0160;20:kDfispgeeg7plALPVs47La2awIAhz0fFvsV4IDhPa7x7fGsRPmet2oVEZdUYYPcnVpvpM49qunxs7F7Kb4reS47Y8T3IKq0ZuQI042UBGpmeZwEtfyQ2MFYNpH1QTyCn4hlk9ieX/mXHtoNzyRhN+8pD0lL6z2McBPmSYm0SUhetdL39ze6ek8DRx5MxyJj6FmyVyLjbFykuEUO7iiU0KrRis1K+BR+1lS7/qCsBQ+mwS0qVvaQiRHeeKqTDCZVs X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Oct 2017 13:15:20.8699 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN1PR12MB0160 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The command is used for querying the SEV guest information. 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/kvm/svm.c | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/arch/x86/kvm/svm.c b/arch/x86/kvm/svm.c index f42707fabc0a..693724c75e2d 100644 --- a/arch/x86/kvm/svm.c +++ b/arch/x86/kvm/svm.c @@ -6082,6 +6082,37 @@ static int sev_launch_finish(struct kvm *kvm, struct kvm_sev_cmd *argp) return ret; } +static int sev_guest_status(struct kvm *kvm, struct kvm_sev_cmd *argp) +{ + struct kvm_sev_info *sev = &kvm->arch.sev_info; + struct kvm_sev_guest_status params; + struct sev_data_guest_status *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_GUEST_STATUS, data, &argp->error); + if (ret) + goto e_free; + + params.policy = data->policy; + params.state = data->state; + params.handle = data->handle; + + if (copy_to_user((void __user *)(uintptr_t)argp->data, ¶ms, + sizeof(struct kvm_sev_guest_status))) + ret = -EFAULT; +e_free: + kfree(data); + return ret; +} + static int svm_mem_enc_op(struct kvm *kvm, void __user *argp) { struct kvm_sev_cmd sev_cmd; @@ -6116,6 +6147,10 @@ static int svm_mem_enc_op(struct kvm *kvm, void __user *argp) r = sev_launch_finish(kvm, &sev_cmd); break; } + case KVM_SEV_GUEST_STATUS: { + r = sev_guest_status(kvm, &sev_cmd); + break; + } default: break; } -- 2.9.5