From patchwork Mon Nov 6 18:15:23 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Brijesh Singh X-Patchwork-Id: 10044031 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id E6F43603FF for ; Mon, 6 Nov 2017 18:15:51 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id DDC7F29E00 for ; Mon, 6 Nov 2017 18:15:51 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id D18EE29E2E; Mon, 6 Nov 2017 18:15:51 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.9 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 6647529E00 for ; Mon, 6 Nov 2017 18:15:50 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932888AbdKFSPt (ORCPT ); Mon, 6 Nov 2017 13:15:49 -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 S1754526AbdKFSPn (ORCPT ); Mon, 6 Nov 2017 13:15:43 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amdcloud.onmicrosoft.com; s=selector1-amd-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=HKSJ+rDhGeJl+XZmbTzEKYZcJUDq2B029TjSN/srnRM=; b=LieehP5DBOHDhZNuRzR5+vJzd2UFHq9/dLmGTxpzODQwGY4ZOd8OBo+I25reSb/EOl71MC7LK9TB2bHCBpw9pIUA0HuuGvcPCMNe3U/e84c5B+I9YQgU+eWKUbb8aHfmv4a5mKjJz6jz1V/E85Dk7pyc9nWOB5GJu/sAN8rcV1U= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=brijesh.singh@amd.com; Received: from wsp141597wss.amd.com (165.204.78.1) by SN1PR12MB0157.namprd12.prod.outlook.com (10.162.3.144) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.197.13; Mon, 6 Nov 2017 18:15:40 +0000 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 31/38] KVM: SVM: Add support for SEV GUEST_STATUS command Date: Mon, 6 Nov 2017 12:15:23 -0600 Message-Id: <20171106181530.68894-2-brijesh.singh@amd.com> X-Mailer: git-send-email 2.9.5 In-Reply-To: <20171106181530.68894-1-brijesh.singh@amd.com> References: <20171106181530.68894-1-brijesh.singh@amd.com> MIME-Version: 1.0 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: c5b70e8b-4fe1-4443-7460-08d52542636f 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:u5k/KxNGIv/3OZBttOF9ZCPrvj7pRfh3LU5nEWW6xLvOUNzZ0WpoS5NIYPmtmQ07kOf7xEKZFsoZwx1XeYXFDfXbOgGfEpEIDzHYcBzq+y+5sf4H/Hj4Y7P259wKEO5C9ixn4YbRcYG08wbeY3Imk7ps70HJ2bOY1jHhQhT8CP+EV5OhAUVtm6yyvOOTEYJfJRfHYz169V/HmvG23TfAJkrcAamPSL7Y+2DRHNb5UvNxvsteG42clufkeIrkhusn; 25:EAQLE6wlzg6rJZXJyvLUVCPY/DelqNX+N3Gh4Hzav6VhA1Ln/U9QkdaL8IKb9Z+QIUFadbMQfVE8Qve4ZWmZWr8nzJy4EeWxRgomKILixchhc5u7GBYLAHIpTWj5osaZucpZ3EmIHIxD70crxxOerbMKyzZjrbXbjQmzilFz+aZo3LNqmVBf4fHgYnJecMG6iIUONjC/VnonMfUrgchgHy8YSDe+dmjiUjZiIvrkJ8przQ8GjmGxyHZOwp2J7VA/fCa3Kg8gzUEYGX2mJk7kZjcA51rmSx+AD0MNinFFx06Xx9MXjru727PH8Rvr/gZyjtpJCiG/uaBnYq+ptAP9eA==; 31:7uz5biWhbawQGOaoNLzw3avMIBsMw6feOabvcb0XkaXi/nt9j3jEam/2fywYwcJmLfrAWuA8nTBFR+cqzdnTRpBv/g2RcqsEvnsXimIUJpM6vR5JFyuMpUwFe0rh6Z7x1ZBqXHTaC0TNRJJrnr8m+tR1kqPuMl7EAwEE7rCYb6uVEJt4yExH/AK50aRDddFncINqiqIkbnSZqIsYC++NWGZHRPBdXLwbwNguSm9bld4= X-MS-TrafficTypeDiagnostic: SN1PR12MB0157: X-Microsoft-Exchange-Diagnostics: 1; SN1PR12MB0157; 20:1oWwtSmFp+FXqJ8R7RS1DKeuqw5hLyTbxuFIe3UoFqa0SO5je7gDbYZr3UmnoH28GVehH2oMMPDKIA0z58dzjkbkginragOjAj+m1qazflW459kbmQJY/jG86wJ/5J1ysVz/iMsGUboLX86pu8kUzqpNfDe1m3+gi8/beCSQGQ+x/P/6Twjmz8aJ5bglcXDsSam5zGtVicXYrdsZuesSaiImY9/rVoKA+TxA+kx2FBRfZKTaxCKMv5bKtygoL6pv6sLkyEHLAXBUhF0G5TEFfdlVTiiIEYlKrILghRP3kSohER5di1fC/hSiPbXDZmeiCgI4jzsJ2abELjhlfDcDj7aguHy4Cq9BJFaM+AFyd6HkLWE0UXB6YEmZZCDsh1Fz3+olS9GQ9CTrCeJdTNFQ92PrYS+qGOvPTO00pp1kpSAW5mCD7M5H3kni3bXI6yq5dpUlY4/IDmEDJWk21c86b+Gj00+xhulQTW3IVH3DdkvnyKaG14zSBX7jL3lnsBMp; 4:5bqzFKJfRVOTAY+3aF4UAv9g1Meq9ZNbfCCU4rsVer/IUvzv/R9pKEdV8ZLgwJ4m/gtk95fs0Y4fcBihgYCuIoZtbH35CY6UfVQu+uFDIvHg3PoXEdR9u0x08JJgWODeNu5tphmLjaNGKA1ee+wEh0xDOhjkKI5Z7apscL52lOFAIigSMNkTOdykzrei+jv1pYQB0pv2+8AlWoiYbtPb51ev5Ar5xQwAIVgb8hUQRXbEl1Gg5m4FlYD5XPVR8OChaZZPZ7kOTGhg6VsIB+61GS3TaqUFTy7sdNGZb5LGxz87fXiFKlidW/ODTmDtjbOgdPYBNbq8ZbLrcQcnnCIs8g== 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)(76176999)(97736004)(53416004)(101416001)(7736002)(68736007)(16526018)(478600001)(53936002)(8936002)(5660300001)(6486002)(33646002)(106356001)(105586002)(7416002)(6666003)(36756003)(189998001)(2950100002)(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; Received-SPF: None (protection.outlook.com: amd.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtTTjFQUjEyTUIwMTU3OzIzOlpXanJxbVhWRFlOTTM3cFNHQ1VwSVJXeFB2?= =?utf-8?B?V2RWb2dkMmthQWxzaCtlbVM1bGNmN2VNMEZJQnF4MWEvWVhiZXRTTlNYVUJk?= =?utf-8?B?RXZTM1BRY2lSSTVWcWc5bnhweG9Md0Jqd3crRmlRTlhuZ1o0eGRaaWd3Z1By?= =?utf-8?B?MkxkSUNaMDFYTUJEQ3QwY1VZbk45dzhKcWFqbXBqTy93UnlRTEZJbEFPZWM2?= =?utf-8?B?d3Fhbkowd3I1eE5tS1hBbEczbzF4M2xBbW0yRktJeVJHRStJQVQ3dGN6QmtT?= =?utf-8?B?cC9XVndDSjV5L0dydzNqTnRCSDF3em9IclY3a1MrcHRibnRTNEFNeFhKN3lu?= =?utf-8?B?UXRycE1tU2ppNnBwQklCMzVrVVkyUlNMOTUzdmJSNENqK0EvSzBzY0VvLzQ0?= =?utf-8?B?eEFxS2x4ZFAwOFhyellRdFVwYm9IVnBZVEExSXNWeUxQVmFrbWprRXZDVjlO?= =?utf-8?B?WEtQV2FzcitLejZITEJaVjkwR3pGclp3Z09HSG5PdkpSVThRcVZMaXh3Um5m?= =?utf-8?B?U3lkTmFkMG44QW5uYnJCV3RIT0tIQzgrdjR1azhNN0NlaWpCZ2Zud0hINnkx?= =?utf-8?B?NzFRbmp0N0lPUWkvYWkwbjZadHppMGFHQ3d2cWtNTDVsTjJKU0NTZzBlcW5Y?= =?utf-8?B?QnZOdFQrMUtJdnhGa3RzL2E1ay9OZUNLZStsRnIvVVQrQ2VYbURtMXN0dk1X?= =?utf-8?B?eFBmMTVRQW1OOW9oeXNNbEhPVWI3ZnIwcERKTFhWRThHU1RGRWlGWXlXY2Vr?= =?utf-8?B?aHJKSWVBUWFTWWlUVklzeEhra3NXY0J0YmZDRjFrTjJxK0FLaEdpdS91QTFp?= =?utf-8?B?VW5ZTzF1NVNnaG10RnRaUzlKTnBWMjJEeVZ4QmVXMXNiaDExdTdEV2tNVXBQ?= =?utf-8?B?aEMzYy9CcDBaaENjUXdZc21CcGROblFjelA4TVVyMnBOR1NIY0dkQUNPQkRQ?= =?utf-8?B?cDcvdnZlSEE4THNBNldna3A1Q3VUYzRxOGh2RkJISHJ3bnorOWxpeDhZNGwz?= =?utf-8?B?NHlVRFlLU203S0tyL0c3ZmhGcWY0UFZYaGlNNjRXRjFveVFGTENkSGN0cEly?= =?utf-8?B?L3E0UEdSRVplb0FhTUlrcnF2czRyaE02MDM0WkRpZG5mYTBBUFZEMVRzdmgv?= =?utf-8?B?aDY4WkhuaFJQcGxybHVwRlhMNW5JK29QeWZyQitrc0YyR3grOUl6eTBCLzhH?= =?utf-8?B?SXEwZUNHM09lWHJxeUxlZEdMOFpGR2VIV1NNVXlHUU1pTEZtNWhqQXdhY2F0?= =?utf-8?B?dmVZdm42VElzU2t1Q2p4VnZIdlpFaEk3WElNbmFJWGZxNE56azlyUGdkbkg4?= =?utf-8?B?c3JMdUtDN0RGcnRvUWF0UWxwQ1ZRSkVta2JMa3JheHh4MDkxNTY1aFFxRm9N?= =?utf-8?B?VnBJUHVZUjdOZDVZZm5aakRZOWh5QjBMdEwySmdwRTg4aGdYbnRUeWZSdjgv?= =?utf-8?B?MzVoK3l1cDl2TTJNWWFvc29adG53akpIQjl6dE96aVNqOE9oeFdmZ09Va0Q0?= =?utf-8?Q?mAJRXnqtBBqRWnEWCoBndJiJg=3D?= X-Microsoft-Exchange-Diagnostics: 1; SN1PR12MB0157; 6:ueYj+dlQxmmYIr0fTflGZJqwjwq0Goy3xb3R5TfaP71PwmXd73rm7zXzjPD0bDjjIiPUxN2AEN5GUls8xEvUUbYziZ3cEga7OS9xvL0tLDzuUToPj+lWh98XcZWDJQlZqTShdbnce6qwLUH7ZguRCJAqJ2K2MLZeejRJunNYeshk7tpP863fTJq9j/IS9QgWmYPDtbJ/wVnMgOENMmiASt7/uxetoLeDrxuVgJVooCwZMOnRNo2yXuUQDnEPzERNlRFq2f7cPAiNAYbzcC+pfJMOpBInhcseo+19xIHg1guKKKZ9G1x9wCSOV3Vb5vaeRuMJalgy0rWfKTdLJsEwfCoL2zjJ5VedzTLxW6ucl5A=; 5:ioFy2Ji4K/n3HnTgT+vhs0A08lmaagOV5LJPpvm0UNlroq6Pm7VYGCTDNSyxU9sMjHLIElUjg86tTIfQZuTnJ1asdAIusPSvHdfWKkCPh+i81qUi1o1wOZdbxm//ozhdg+4EelIRG7kIszC4y9qoxUcQkF8IxawPUmIsPh79fbI=; 24:pGNwbt4K3gSbvIOSu0u20iDk7UJBnpaT6Ho4Lgd27zW+sVgvYds10C38fwZ/Y+FtKPqCs8r7x9Nk+dkH+JLn8MOvMLLHT5hOx6tEUWOxEZ0=; 7:fRSQctF4X4h+4l2bAHV8OtyvkbUntemX9Y5M1uWIbfybehFIERSgBVSTr3RV0hc2escAP8zqB2ABUZHhsWSZVRnmhZzVuPKjxXolMDOB0nv/uBPKllJ2An1VwuahIJ9ecqK53dIe48IyIhEyFeDz7m4FDIMewRbRwqrGm3ZlCy6rElKQ5mfhdjIfWjm2DLNhT/O5249Z1EHoM1gBDoh7UOdkDDJuOP+/d1wX3nwDfBlt8e8ECELRboDEss1IkjSt SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; SN1PR12MB0157; 20:GBRL/XPY1E+ee5cwJq9f7kkiPeHRYZPROAkUrQ1Nv8VzwrHvhqyIL93Kw+nZO0bK9weKFmdfgF/uMlAQKu+pNvRVaKyg8md9pVjw4uLJlvL2zAchV2rZaxoyQJnz2x6RN7VxBn4E7BDLkVi/vjyHv2o4a9YDakcBeGbbPQPAlIyAsXAS2I6mjDmf5cdmOIUsAKUoIo6RTSi9T22rKjyasdrKee4u8EOcNOF4YX2B4VpKJXt0HajXht6qw0i9QTwC X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Nov 2017 18:15:40.5673 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: c5b70e8b-4fe1-4443-7460-08d52542636f X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN1PR12MB0157 Sender: kvm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: kvm@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP 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 Reviewed-by: Borislav Petkov --- arch/x86/kvm/svm.c | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/arch/x86/kvm/svm.c b/arch/x86/kvm/svm.c index 6bce4b9a0bfd..22af24264411 100644 --- a/arch/x86/kvm/svm.c +++ b/arch/x86/kvm/svm.c @@ -6093,6 +6093,36 @@ 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(params))) + 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; @@ -6122,6 +6152,9 @@ static int svm_mem_enc_op(struct kvm *kvm, void __user *argp) case KVM_SEV_LAUNCH_FINISH: r = sev_launch_finish(kvm, &sev_cmd); break; + case KVM_SEV_GUEST_STATUS: + r = sev_guest_status(kvm, &sev_cmd); + break; default: r = -EINVAL; goto out;