From patchwork Wed Nov 1 21:17:16 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Brijesh Singh X-Patchwork-Id: 10037217 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 46215603B5 for ; Wed, 1 Nov 2017 21:20:40 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 4372720072 for ; Wed, 1 Nov 2017 21:20:40 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 384F6209CD; Wed, 1 Nov 2017 21:20:40 +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=unavailable 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 8ADCE20072 for ; Wed, 1 Nov 2017 21:20:39 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933665AbdKAVU0 (ORCPT ); Wed, 1 Nov 2017 17:20:26 -0400 Received: from mail-by2nam01on0041.outbound.protection.outlook.com ([104.47.34.41]:43936 "EHLO NAM01-BY2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S933385AbdKAVRo (ORCPT ); Wed, 1 Nov 2017 17:17:44 -0400 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=cIf3NklK6J8YUKDmKLvpeQGSipGHK9sjthKSSO46MPQ=; b=NM8ueLlJSoEDrOm0QbrselndRQcL/4Zhk/8tjiaFd4gO82hVm7VS3DghfqXWgmMzRGn27MCVTkVAjXk5mMW0a63JA67EzAUxm/3fS4QTSMMfcBmDywqSCp1dU4O/5HnoyCb5T1hV5FpkfDSA4rSgvS3BKYvdYpz7k0OGmrtSMxU= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=brijesh.singh@amd.com; Received: from wsp141597wss.amd.com (165.204.78.1) by BY2PR12MB0145.namprd12.prod.outlook.com (10.162.82.18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.178.6; Wed, 1 Nov 2017 21:17:39 +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 v7 31/38] KVM: SVM: Add support for SEV GUEST_STATUS command Date: Wed, 1 Nov 2017 16:17:16 -0500 Message-Id: <20171101211723.71594-2-brijesh.singh@amd.com> X-Mailer: git-send-email 2.9.5 In-Reply-To: <20171101211723.71594-1-brijesh.singh@amd.com> References: <20171101211723.71594-1-brijesh.singh@amd.com> MIME-Version: 1.0 X-Originating-IP: [165.204.78.1] X-ClientProxiedBy: CY4PR02CA0025.namprd02.prod.outlook.com (10.175.57.139) To BY2PR12MB0145.namprd12.prod.outlook.com (10.162.82.18) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: e0139857-24f9-47bd-9f1b-08d5216dfbea X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(48565401081)(4534020)(4602075)(2017052603199); SRVR:BY2PR12MB0145; X-Microsoft-Exchange-Diagnostics: 1; BY2PR12MB0145; 3:FHXtzmfqqLWEgGqlprPMW4+qtGRXqD8l8wT+6SJwGB4K7rHiJWU3Rg7aRkZcIfCltInyCW+pj6UO+1Rywli150/hJJxAEdDgDSYaXprwD9hY9FldmK2BLQ3BD7Bhn3bDGEG46C3nGA4vW5wcFoQCx5vzxzCljLjb6H5YOZRP7qZrLK7DFN7AqA6p0uTW7UhYQ31DrktfDDX652qi+rh2ZurPGbduYRh+aFS80fE9e71KjHK1eO/RLVOLY1rxMf3I; 25:ZmaHHbhj0xH6RpDxUvvelHOPaP25mEFx3Bl/bTNnwctCWHUbCbGeHvY13CgJxzzoNMsP+UGjSeHUeWxEieI8ONPRDYfqiVV6jlPGygsFhEVoKUfn6guR8acvyOE0w5Zh+yAM9pipYFtzHFIedvtZ6LZoB8nglb2bwMCWyz8eI45caF9Qv/DXaWTNLepmoLvXial07gH9Yi7wOV/03QsN+EnUOiEGxA1sWmkwNhVR1eo4ELAJWzh6KN4Xolaz9FsJpKNZOwz5g2o5sK3Opmo479MqL56eZlKft0UE1wMTPR/kg56Tge1d0xtcPCsIkoon9GiRxW/MaGP9XXk6ueIZSg==; 31:QKVP8jCrZmjILcyDeBxzoaij/Wmx0ZnGi3HRBbrTcanWHMc4TtjR9p55d7IMvlVSmFYL/jGMX7g5ICx1ZZoymzkYV81A04jLwZe9YOMDO0Zo2LRHvbGxsBlgOoGfEWBEt9SRsikelW2Mz1G7s2nlJwDY/Q5c4GrpmsC9oCtOgFbnmvKvuN5SeYKUZa5gh3y7WibS+aEVAXM4rmjihlejGEAWiAiokF99VmClbayhvto= X-MS-TrafficTypeDiagnostic: BY2PR12MB0145: X-Microsoft-Exchange-Diagnostics: 1; BY2PR12MB0145; 20:nNYo8fPsfnAkk/zAzSJrdx57tMG1k0tB+ovI5tW+SwNcRUwpWOOWi+NS2uU9pkulWpz+mQAswKJs6XMaiaa+IsxOk0y/tA7EifjGQBTG/S1GaN71SdZyQJy9CRlbo2tZoB58aGKaSUqFZcpak9aEiDirLZO26ecGAiUE4KKszps1EtzEVQDssNlDAu758mNggNwLR5+hAFUwksSe3ld0b6cFomDETo7LsbgiGXgpwSVvziLmHY9I27WLTfxSitaLxGGeAamvB/sdiq9tr1Hwg3FtCisrM0SikyWUXU0b9oqzdZqQLzdQlMkAMppBJdgOz2CNgmFyO6OVXShcvYDq9sXt6vJsODNa4PXFO8C2snlypFsqwr1KI/pFCZOqy/feWQptku/nv0cWoeaxNkG0N0QD7Myvyusxse9smLViGpaZQAj50kqN9Kh3JIi9iTABJs8hKsqaVRq2hizURcRJux42ia8AHMlcpXadXbNHVHGgLW5YVEZ3zaypq5y1fXi8; 4:HACRDjXc+ruu2bJeWJNV8po5x0f6UM45cKla2Kl7I4mt+0EjEtxCjjn+J4FOSLXlffbu75mDEsA+z2r64DAtw2cW3sIdAiLMa03jSMwrJlNXKe41hnZtVDAy85OJ5ock3yg06ptC9hqZr95U4S+Aj3izWf6ai+PBM/gbKD5vBREApOEe5FX9BVJskWAybVUZF7qXey4X23Dk0zGcs7sy6+vnRMgXk/XckP0jaV2LK/YKfyMnfbe0fOsgIc+6zdFV8TXqoEBHNJqWIWgpS8O/2V0bkkopAsxBHsl40U5Bj38NV5q1tw1FZ28uapukoEk5/4PI3LlZpHWIUAyHjuwQUQ== 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)(5005006)(8121501046)(10201501046)(93006095)(93001095)(3002001)(100000703101)(100105400095)(3231020)(6055026)(6041248)(20161123555025)(20161123560025)(20161123562025)(20161123564025)(20161123558100)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:BY2PR12MB0145; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:BY2PR12MB0145; X-Forefront-PRVS: 0478C23FE0 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(6009001)(39860400002)(346002)(376002)(199003)(189002)(23676003)(25786009)(2950100002)(4326008)(36756003)(8936002)(81156014)(81166006)(8676002)(33646002)(2906002)(68736007)(2870700001)(6116002)(86362001)(3846002)(54906003)(97736004)(1076002)(53936002)(50226002)(316002)(47776003)(50986999)(53416004)(66066001)(76176999)(50466002)(478600001)(101416001)(6486002)(105586002)(5660300001)(6666003)(189998001)(106356001)(7416002)(7736002)(305945005)(16526018); DIR:OUT; SFP:1101; SCL:1; SRVR:BY2PR12MB0145; 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?MTtCWTJQUjEyTUIwMTQ1OzIzOkNqVHFCcTlHZU5RL1VBb2JxY3pzcmY5Ti9k?= =?utf-8?B?L2d5M2dpTkgxUUxVaUFGd1R2NGpRaG11bUJsa0VzN2JtbHBCaEhwV3cxdG9H?= =?utf-8?B?cGl5TG9iUDFSbHZTUWRaQlpCc0ErbjhqL1duVm8xalFsZWw2dlJFaGZnZXZo?= =?utf-8?B?T3VxZ1NsWnFsUnE3SW5KK0Evdm1DQTJjeUZxbmtZNHVJUTl1d1VTamJrTUt0?= =?utf-8?B?T1J5SlI1emgzb1BSSUtCYk83MnIzTkZTeHcyMmJYa1RWVUw5L3c3R1hqeXhm?= =?utf-8?B?aFVvUE8vamw1UTRRSzlYOHNCWjZpOXlWVlI0ZCtpaGVVblo5WTBwZzE4QllB?= =?utf-8?B?K3kvOUJVcW0vYmxqMjQvVHUvWng2T3A2eEo1bDQyUUdJb29Va2ZlN1ZLSTdO?= =?utf-8?B?by9oN1h3cjEvUU02cHE0ck0zcXpKcC9VRWtLMlpURzNoSythU2d6bDZ3K0Jq?= =?utf-8?B?Tk1hd012UnY4dElJdWpLUmJ6Wi9uRDFpVFY0VjR2eEphNzV5eGk4aXEwczIx?= =?utf-8?B?b3hHQVpaZ1BqVzNKSkNQNndXZ1pJVEd5a3U2WDVzamN6MkJOcWltNmp5T3Vm?= =?utf-8?B?SDRXRmZTOHBXc0REMFZyQk40d1EzTy9vQ1NRbERXUHNmeWJKMjFKYlY0QjhV?= =?utf-8?B?OVRmN3VEMHBFa0RQbWR0VTVyMkNYYmgrd1hZU0wyWXpOQm1xcU5xejF6N2w2?= =?utf-8?B?cUlFNTlnb1ZTNk1QTXJsbmJ5VUhQWkQyb3JGTUt0aWUzMWFobktHMXdvZEsv?= =?utf-8?B?bHZQZ2Q3d0F4R1N1dTBxUmFveHpEekpxanBxMDF2R0J3R1Fod3h2RUdacnF3?= =?utf-8?B?bGNIbjhFVzhqTGkxQ0VZa2t1UzFIU2dpQ2VsTEx5QjVtQkk3Q2VhVzZDOEUr?= =?utf-8?B?V3FWMUJ6RkFCQXAwaTYwMllaODNVRHlVVVVPSDNYV0FGMVhkTGVZODRGaXIy?= =?utf-8?B?THNydk1tOEovZGp4cmFOSlBOZEZHbENsTTdNOW90VzZZam9NM1AveXp3MlJu?= =?utf-8?B?dU9CcmtjbDZiTzdlSjhTWHJBNmZwSmpMNVpXeWxpRnFNYkVJOUlZMXkybjJv?= =?utf-8?B?Umh0NlNRRktSdWkwOHFoYTRaMWV3TXdubVlZSUFvbGEwTDlFSGRWVzBoTlNL?= =?utf-8?B?c3JBLy9TbU5IaTl3NnFnemF6ZFB3cnBxOWRUK0FMdUpoa2o5NmtEVE91V0hM?= =?utf-8?B?MWx0LzJ4Qk1YSGNKRDM3QS82bE5DNjdISnBFOUhkUDNiUkF2V0VPQjN5bml6?= =?utf-8?B?bmNMdU1KOWYzdlBIUGN4bktVMXlXMnBMaXBXZy9kSWVjekV3c0U0elFlQVVF?= =?utf-8?B?dWttaGNOekJoRE9jRVpHL1RGM0dKVkhUVlY4V0tybm9obXJiNTdkUVVTWjRk?= =?utf-8?B?RkREOXJ5Nk9RSFduNGtEMWp0OVJLdUhWUjZNMlNuZ2hObVRDMy9seXF5cXZu?= =?utf-8?Q?HdDgFkuwmeTwiUNzWb7Ioqc/Yws?= X-Microsoft-Exchange-Diagnostics: 1; BY2PR12MB0145; 6:hmFFyW5UY077uLrK9GlXpGxMnxz/WCiUBl+nF3j7uTGzvo+qhqEgHI8Nt68f5SwQRIjoO7w7Psg9W9BTB9yiHCXDh3V7NmCbEVS+kBp87kZU+fIA0F0iYAkgBZ0+F+ynUlb+GMcBZqbYrZej/Qmn3N/4CVasnawZlUgXEil84chUfeFJ+EX9thBrH/pMP0Y8VflX0TXAXqDBLBV4qGbp7WvR/f+SRb5O6Xu+cy3IZ8uyXQD0uC0cCrbHWHwQf5Bk4UKNxitoz9dsS9sR4AslSuss7XP/Pd9wa+dtDIjNNosbUjOAFXiMd0PIgCgTCRMbiuKMs7Mr/Jrjo8t3WfeC6ZgzE6bKrc4iMQjlkInPFhg=; 5:8VG8wNWymGQcGcnT1MzrAiqlpu38apu5VOi6r4OIArIGNMWbGVONKZ2Q+CnhNJDb1I5HbV9KX8YM7g+FyF16/IVJiyqEoPpzrKE6lj2zc8EfH4panJy/zTs5wtslRpKDIM89PwhwFVJ35wsYTbqh3a6eQ+lwMD9JjPersfaFAVQ=; 24:0s1HycUm4vVmVWj+FyCbk646WQzvOZtD9iWqMkDeG9NhdJL1mV4/7+icbWfU/S1w6qmPvP2e4N9a9oUgdsWaTORlFne3bzn633g0S6UWkt0=; 7:IzVQIoVuI0fxmGO5Fdt2hotfPGINo0YhOxt3sAQvzbMgVj2tGuTXR7lpRX3Du2XC7EfZnx5IyWqzSdAAFTj2FQnJlAI4fxiuG4o054efJ+R8KRSTcJgjqBHTJpVreQsVasGhbyVk+ivLkf+E90n8B0dBa209YxkGYjgY8ifGqH4fJOE6Qmv9OPay55IJsaKMR8PXH2Uzn2q5jfNVTapefwETwfRSmq8Gwi7LFjYrpRJ3nDGQC2kA1a0uNWfXb911 SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; BY2PR12MB0145; 20:+HKa6G3bCrrkuV+RU7iZZoa3Oq6EJZbTctEDsi/fLg3hDa1ta2ks/Erfw9yqKZ9GnozSDYDeDLv8a+nrBVNkjpsr9lJ780+/1G2EwzU3yhZ8VDTg0oDnwv0iBZaZqdwZuZqrAitHhmHE/VF1NvmKjsHm04/BaGF8JAfD6ZsC4x0upSsPCLMV/J+tz2vdE/1YAY0OmcXZozB03NhFDbPwfWNC5hzB+iOu0dORZvrcmIsSpghGyBY5sJn3SFUYixWW X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Nov 2017 21:17:39.4246 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: e0139857-24f9-47bd-9f1b-08d5216dfbea X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY2PR12MB0145 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 0ed823806bbc..65ef2a72b8e8 100644 --- a/arch/x86/kvm/svm.c +++ b/arch/x86/kvm/svm.c @@ -6002,6 +6002,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; @@ -6031,6 +6061,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;