From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752828AbdLEBI5 (ORCPT ); Mon, 4 Dec 2017 20:08:57 -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 S1752179AbdLEBGi (ORCPT ); Mon, 4 Dec 2017 20:06:38 -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 31/38] KVM: SVM: Add support for SEV GUEST_STATUS command Date: Mon, 4 Dec 2017 19:06:09 -0600 Message-Id: <20171205010616.5958-2-brijesh.singh@amd.com> X-Mailer: git-send-email 2.9.5 In-Reply-To: <20171205010616.5958-1-brijesh.singh@amd.com> References: <20171205010616.5958-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: 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: be7721bb-94ab-4294-f7eb-08d53b7c6e4d 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:2DSsI49yYKXM7Rkkc6yb2C4FwWe/3ikgw2IZ7hh1bhdIK6kWeHLcdvWBT0TRNyFyuDfvqFgEBcNCSJK100MoTZBUqKhu6rDzT9An8PGpbmbt4eH8QJ1gPyIf7VwmTMbeIj8vwQBLtBFvhjrpytxT7y5w9c1I2ql5AxK4Touq8yDIPLt/qo0ksCp7amGEvggeNwAXoOZZenVtAs9nqlae/g/EGOEnqkngZ0rCMQINzQRzsMuqEbdnOQIXjKvR8Wqg;25:2hHENPCqmyjc7gw/8daJlZ2LTss1ODkFspuy+mz7XpM5XzTrmtfEP6QfSMhW2Wc8uOJuHhepr2wVme2+u4GwLhAw7fVfepXtmfIbkNAEWFjb9euyasmJKzo9eHl6EiL6rkJujAfnfs/+N5Da6JavNo3aC4ep119/hVznOLDnfk60O2aAOOWzW0eZuAWM2M9oX5jn3t7Bs3MpVAFBKE4TE9+9zyX3S8ZZDX3z93ztMRAI4F/W0C81YtSCvZIQPhTsKMhv3FZvRVM/JArpRHp7d6fOLbDubJy6nEINgJunUvVmiaBBIbH/o7cNE4+kWysG/WlPd6wOu4abNahkpSQlBg==;31:2KAKrT6v2hLREfs4vc5Q9//M3IYV5e3Uqjv3nrhSassm+9VpKkAo7PQJtg7+Ec6CefFgMuGchufenqp2XMsjxaWmRuxvGYd20FeXF0b12Ml8J8+baHYZpbFSnSOjR7MdAtgvv5id31NiWGOq7wJNThiGe6b3VaHuEelyTuPID9dTLftazfDBP9wwKy6u2cFVGHuuandAbMC6gDg9A0mN8H6AQ/2mKFtpm2rKFT15L2A= X-MS-TrafficTypeDiagnostic: DM2PR12MB0156: X-Microsoft-Exchange-Diagnostics: 1;DM2PR12MB0156;20:7VYf2iQBYU5B+kIPUGZfa1qhB1w9239Yn8H6CBlY8czGpWjya+WDk+o2B+BW6yDazNUr0jrXQqNzLXmiNxlah2ma/V6ZTdU+bbeZvfNFfg/cGSfuQ1eBqnt1o1upsiXHortvi9BZ+aTUGOODjwpCJaGZDq0d/F2LAkyPGow+jNRPVfYTZ9Pf8ELFVhhEIGr8F/xTRrPVD7t2QzlKBqc6Q6aoXhvxo7WVoD1/qFEqYGsicVmqXh/KXP2cvl5+D13MD/QupqViuLAYOhlSAolUWNNq5+EjzVpbla0PppFKlJdmtNi9FTDJkGY/w0h/Z7fsb4kp2oKxYq6WkhSVmldkMxlK/U9IcwFLe/xPjRkQTcJqu+6Grwwijc1XECEUwHLMFpNqrbUlDbYJwQq6J5x7LklqvUNKBFpcVbx0SuXCmqHjOCytUQMTNymAfLkqDv0mKgARoKAq84KwKvE8J0V8tkpqxcpdvzGrc/eOdpF4YiksWjDwzRcxJ+StV6Ie7PU7;4:aRP3o8nOxe2yjNorrCeTAdoDYnql+wRKSJeUFEup0PXHCJOM38nvEpwHs9bLZtYBQakjjIKBGkdVTdnhTqroNzBs6E+0fw+NV+B5F6RnWmCZmuZbgPINJG4JTvquD+DHZUQXCJxvw3QXUCrXch8V+fj2VA7tq8fplUPgC+18AollZqJfXlQEPaQ2eKYlinHOCe5S7fUx/BeNuRU6ry79TdCHz944AMsmgbqHq7tGTqqWOvd/BKCkQseSm5KrrY92Z5Y6z14ctqIputm5OfYtH73mItYpJpYv5mFUegnxiXnKOU6WugEyNFAOV3rymI8YD+x6eEE39cQWk6cFuk+pWQ== 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)(76176011)(16526018)(36756003)(8936002)(81166006)(6486002)(81156014)(305945005)(50226002)(7736002)(53936002)(5660300001)(52116002)(2950100002)(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?MTtETTJQUjEyTUIwMTU2OzIzOnhqRWptRU16QXZHVnB5SkV4blpMRkE2Ykpu?= =?utf-8?B?bDFmVGVmdEtmOTlEak1pM1lnQTIvbk93ZlkvY2RNU3ZBZ2hSaDhJTWFZS2xL?= =?utf-8?B?Q0hLSFF4ZXNlOUtlZmZvTmxhL1VmcUs4U1NLbTIwbmVkL2QyVFVtaUE5SmJ5?= =?utf-8?B?dFJHUTI1bi9yem1Xc1llYW8wbW1UQWZ4Qm51dW8vZSswK3lObGlFcmxLNGVi?= =?utf-8?B?OHNja1V3MlRFb0dZaHlwb0d2L1FHUS9ObSthaGNFaElsYVlwMmtQR1d5dXNh?= =?utf-8?B?YkovVzFsMDV5UjRneGQyOU5Db3JNQ2NRNDN5N0M5eS9TU3VJRllkSVRJdXNQ?= =?utf-8?B?MlJnaVRYdW5ucUxYZjVqUmV4d0hISGhITjFydVpJTXozbitwczA4NkM2VUZs?= =?utf-8?B?QjE2SDdjdXBkUUs2YnlkSFRvKzhCcUU2Rmc3Smx0U0licytyTEdXUzVvVmNS?= =?utf-8?B?UTZTYU1wRVhPeXRyaW4yZkY1cTI0ZTRwbHRCR0UrREl0NXFLckpVckpMajdu?= =?utf-8?B?TVFGMjNwaTNmWE1NTXBFdGtMTVk2V3NSUVA3aGhjZ1lKRmViaWFyc0pBZDlM?= =?utf-8?B?dFVoZHIzc0g3TkJ3TVNjTXRDZzBURVZ0empCenZHQlgza2dsL0FQMjRKUC9J?= =?utf-8?B?V1J4N0tVNWYzaEhwZnE4RjkxWkNJRkZ5dGhjSnhPemYya0Y1ZzJWQzZNUENY?= =?utf-8?B?U2tKWnRKcXNHaitRTXV2ekJ2cUlDWVJrUkF1NTZvTWQxUkgyUEZibEJFOFpJ?= =?utf-8?B?K3UvbjE2WHZXa2phUkZnbjZrc3hMdkpQdjBQMVZtOWpvdHZjUFQ3S0lwSzd6?= =?utf-8?B?bFFyV1pUOXBOVWFDRkdDQnI5NUhVL05Vc0VWNm9tcDIwbTV1UmhFbFkyQitz?= =?utf-8?B?dzh5RFVnc3JHaDAxUWlRbEVwV0VneWw3ZTN1RE5KSWZrSk1zdDVnNXlXUjI2?= =?utf-8?B?VmtEckdVQTJqK0Nod2VablExU2NWWGlpUDNUTzNncDRMS2tUemtSS0VKRDJm?= =?utf-8?B?QWpZeE1hUTEyeC9hR0VCa0NRV2hDY2o3czEyYVB4ZkNRYnJzK0Q4cDdNdmkx?= =?utf-8?B?MUlMbmNtckROdU01S1dvYzc3cDkxalEwQ0dOVHh4SzByRDhqUkZ0MXJlL0xO?= =?utf-8?B?TGRhdEtwNVRnTGJqdzlOK21zdStLMnpDcWFTRG4xTDh5RnZOczhPRDNlVjhn?= =?utf-8?B?ckIzVWNiK0xJV0IySjBTZEEzMDBsSjd3Wkp1NVkvaGg1UEdrOURZYldUdllX?= =?utf-8?B?YVN3bGFuejZtQWpXWTFLNmMvVUIrQnhZcTg2NnJLUG56d2hEbEFidHdDcWVy?= =?utf-8?B?M01ZS3dWbXc5Q1lXSVJJeHhqYk1ScXl4d0h3SnFYTXBjNWZtVTZzSDJ1MGtz?= =?utf-8?B?RXZCa3dLaUswWHNJSGhzS1JCTEJHTHZCc2xSRXNQUXo2cnZneVNKbUU4c0du?= =?utf-8?B?eURuUW5xTUpQcGVRN2xmQXduaDVIbmNSVVl2YWtsTEk4dC9sdmYvMkJodmkz?= =?utf-8?Q?vYp3sbAJTs0KNHL+ecS096qec=3D?= X-Microsoft-Exchange-Diagnostics: 1;DM2PR12MB0156;6:IIj1Wjbyij7jMNAuxEOsak8ITDsRZF3DOC1yNWADcfZsCzu3eucBoGGCT3tnADmBjj6pP0ujT51ZHjeFjTGXRlbZ5uECBuRMegbctZCswV71Abnlg6fEQILS0tvwqhH4IbSpRNb+sNgzDtkf7ql9fUwK/6ou85FMPG+dKoszy4q4BVDSlO2HQFw0vYBkxzGcpuGJcI3TcCiQagU/8kQNZQ7lSD1UcYeUPCH4nD/rm6dfG8lvv8O7XU6w60kQ4dKtrpsUKq7bS9pFGEApSam3GamtQsinWK4SvFD6WU6jnWh7W1AGWjrDAQYf5nTnNFg3QN+CaE4+1w9TODTVtNScXqjpQDXz5ujEradYyvNtMNs=;5:A/4NAyuUWEmcIB0wbSlx1VXkYZ9EpJ6pMdjtYIZIGCWiZnc0+UYKaOJ7Zw9Ypw96Sh8/JDz3cjQwy29KI2Dl6iOTz/KK8gFCXShmEatqv9PT+Z8zJq2CGIWQg/TFZxrv5YN2YsF9tYspI2FK2ae03yaEdT98NVAnCSipnYlycWM=;24:ENS15jkrvgd7JfIjQRGIR6TPVXtTHJeX8dQH8Q5eY9qzAdqgtSAMRX09/9h1hwbwcRKF/gcN51lYLGY4PJi7QiIuy0yZj+vAtq+7Bb6KaPc=;7:JqpaPzxvOven8dRQCyxxAfHcX2iVgjU1IoBj0rAKRAb9NezerVOpnnZqebHATZ4Q5xn6F+FKAO2iMH4+GdiwfTXbkuk5RXGPLnv+W7ZVdIec4yH7bjYp7NdjptLbKKHJZScpU9E2ybe73Zh1NB07sdviVeGwOMDcjkKovB/UqnbJrVAXNKnA681bzKx1roSErqzKNK2JZ6TbTVv9Du8SNtcr0IMjbMjABbCTWOsgAwROdwPlkJIyvfa6645ku2E8 SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;DM2PR12MB0156;20:Ta0bbbhD3cFVIOc9t+Oxns6F4B/BdWEYMDL/bWu6/aPciP2vVRq+jLla0hzOgu4XstOUAt1x14m/2qmCmSzxAuS565uo+zeJkyJZ8jfw0bcWqp1wIQQHvmD8wAkgV3WnM3AhbD8jhlYaOk+sCzEpRUD7b/Eop/0Hg2nuyP1eWIF4PKLegRIpP/xYyo1FFDAT3nOulIrubQFI9n2YqFAOrT78DGQF6peQHX9NbbcHTUk0DKDicortYD+jp4ZLbSCt X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Dec 2017 01:06:34.3973 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: be7721bb-94ab-4294-f7eb-08d53b7c6e4d 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 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 6a8d81311e9d..f5da2753790d 100644 --- a/arch/x86/kvm/svm.c +++ b/arch/x86/kvm/svm.c @@ -6133,6 +6133,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; @@ -6162,6 +6192,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; -- 2.9.5