From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933102AbdKFSWe (ORCPT ); Mon, 6 Nov 2017 13:22:34 -0500 Received: from mail-by2nam03on0078.outbound.protection.outlook.com ([104.47.42.78]:49424 "EHLO NAM03-BY2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S932671AbdKFSM0 (ORCPT ); Mon, 6 Nov 2017 13:12:26 -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 Cc: bp@alien8.de, Brijesh Singh , Paolo Bonzini , =?UTF-8?q?Radim=20Kr=C4=8Dm=C3=A1=C5=99?= , Borislav Petkov , Herbert Xu , Gary Hook , Tom Lendacky , linux-crypto@vger.kernel.org Subject: [Part2 PATCH v8 15/38] crypto: ccp: Implement SEV_PLATFORM_STATUS ioctl command Date: Mon, 6 Nov 2017 12:11:07 -0600 Message-Id: <20171106181130.68491-16-brijesh.singh@amd.com> X-Mailer: git-send-email 2.9.5 In-Reply-To: <20171106181130.68491-1-brijesh.singh@amd.com> References: <20171106181130.68491-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: BN6PR10CA0031.namprd10.prod.outlook.com (10.175.102.145) To SN1PR12MB0159.namprd12.prod.outlook.com (10.162.3.146) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: e08b1f91-058e-41db-d08f-08d52541e8c2 X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001)(4534020)(4602075)(4627115)(201703031133081)(201702281549075)(48565401081)(2017052603199);SRVR:SN1PR12MB0159; X-Microsoft-Exchange-Diagnostics: 1;SN1PR12MB0159;3:MaK8lS6OIDFMzTquksQjPT2g/hOm7qUxI01FENQSg0Tc+7M0dFWZyDur2EjafsiB1W1BidWITfp1WY6DBIuWbgFCDQRkGWSI8yzh63nuXp86pkOJf7ppYQ/ekC+wt7LukCGDhHYbc1dFgaRrL2VWlPwaPiPLvu1ve4jb0MzBwCEEEF4GDAQI5UY8Sw5zV1dLefkaMWS1mlV2GEzsHQKiolblv95cwrtYSGPlEcHxU0iqMVyEp1+diEjQUeSyOu2x;25:P8nrwTPJc/0sKyQlHt9BjHETNyQFPy8rFrUKa1pkD7ksrMJ/fjHYyl+B2oktthOZ1GQeaPR/B7EAw7920lhpFaISeROPx1dipk2pRWFM7ebZ7FaIdMaY6ZHY8tdTAZOhwmEVynXdpwnTrTcWWy1j5pb5ZU3lcf8oKS70fKASRTNjUHmliC1jSeAmhYi/YLhLMK0Tt6wlea/W8MN8JAYRvckHRQfkSb2WsUcSTf6vHkeWItBlqReZsUb/EiQqKGZYxZ4M5EreMUSZ4EED85dHfBnFwjcu9IIvn2qkfuaVMKFw0EFqrRGFFxhEOsdRJ/9eAy/HlKA4kX6uJ4rpClgvkQ==;31:DpbKE/VAJ9SxJyJJoy2ltAciqxjNB9NT4epHlfV0tea0Dr63jde4G7WqTQIfk0NPkOYMvCuPS+AB/wgnpJFUW+Xe0AQI5EH4mjHtq8XWnG11QvrJ6mK4g5brRnRA4sZ87jc+ThTeHgVIpexx/OUM940T1cU8SJfuvxiWJcoo2yWYM/n2lOTugiARMgs4qhNNX1zZ7/mjIocRZZ9yR83/eNayJKYn7VZj0ND7l5WmULU= X-MS-TrafficTypeDiagnostic: SN1PR12MB0159: X-Microsoft-Exchange-Diagnostics: 1;SN1PR12MB0159;20:Aqb79RVJZ1EKF6lfwTtlveFinArnlBHItnp8b+FY8zr7uVM6rvU5/w+Ch6n6IqhGmlslg9teMeNBeGYTZ1lUKR19OzIaq2RJZpM4pgrWhPayXwVearDszfghhpxiAP2deC19MNwT1bT0QzrioQ+u23x4185T6mnmtqlWGPPgiM+hjClaUoUCMxbMFBX4/9dw+1M5DgwinAJCxnVk/K2JMoaH9Gw67jg4haeJ9BVDQpz3ghTyQuOuSHif4V66kNNhyTbkT9SOB829pKfbCx+k3hrQT+ZJWBkP3SqVXcmD51DKOCvbitu6xHjTpHYBGwqYitB3B5UKGrI0I0hHVjszS72jUPPz4CpCapeoy3dRw1W+N5OfQx0ZDG7jWUyfCyu93Lc4oaHBa8B7oBrpCtQbgvm2VeIqqdSNDf6tuwQXvuoXrnN2mk7sg6FQZv9c2jFW3LGcQiZxx2k/wdL82HDPy05VZlb6pDJo3SrCWikCoNsfj3qWTvytnKvgcaFiVEHZ;4:F8wN3Z1sayGhCDfJ/odlocZx4C/42SI1uQwgcS8x7xgOl3OFJeJwLWfeS3gNPpIrNrJ2/DRAMgIvFtJyYXbfMfxSpAy9Vk3D4im3jvGdN0lbpvv+8wxAmNtgw2HePFZdjYhwrIB2zu2qT3i9FyFAXIEDmwslaXp6HodrqCLr2D2ldNuj3yrby1O+bhqrnjLo7ChY/QpU4K2UgCJqYRvAPlSCodgMLeHiK11IXZuZIAG2Kh7mj1iCIyoGXl1urkWg5MXVRcCazyudqJwjcuNcwmMkLpaXaMI778d5w/ehDQaFab3yewkOBzBHaoQEZO5nZkG0gqzK94hX0/bQdh4l6g== 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)(3231021)(100000703101)(100105400095)(3002001)(93006095)(93001095)(10201501046)(6055026)(6041248)(20161123564025)(20161123562025)(20161123555025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123560025)(20161123558100)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095);SRVR:SN1PR12MB0159;BCL:0;PCL:0;RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095);SRVR:SN1PR12MB0159; X-Forefront-PRVS: 048396AFA0 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(6009001)(346002)(376002)(39860400002)(189002)(199003)(45074003)(68736007)(97736004)(4326008)(316002)(16526018)(54906003)(7736002)(8936002)(2906002)(81166006)(81156014)(25786009)(53936002)(8676002)(2870700001)(1076002)(6116002)(23676003)(50226002)(189998001)(305945005)(86362001)(3846002)(50466002)(33646002)(66066001)(36756003)(53416004)(47776003)(5660300001)(76176999)(478600001)(6486002)(105586002)(50986999)(2950100002)(101416001)(106356001)(6666003);DIR:OUT;SFP:1101;SCL:1;SRVR:SN1PR12MB0159;H:wsp141597wss.amd.com;FPR:;SPF:None;PTR:InfoNoRecords;MX:1;A:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtTTjFQUjEyTUIwMTU5OzIzOlV5dHk5ZHRieE4ySmR4c3VCc3BBNGc3Y2Fv?= =?utf-8?B?TXRjdS9lVjFaeWtWeVVic0FNVmNWRFF0UjJHM01CM0lHL0lkREttZURnYi8z?= =?utf-8?B?ZGtkWGZBSkQ3S3lCK0VnRVUwNXF4dEVReWFRSHJxQ0pQSHNYd2RXbXpNRGV4?= =?utf-8?B?Mm9aZFJ4SmdzU3lqUWZ2Z3dUVGh4bU1JL2llZG1xTTYvUjF3RHpLeWRRa1FN?= =?utf-8?B?SnNNVlFuK1JkaU1ob2dxUVdYYWk5K0xTY1ZvcCtDWVQ2aDlzdUZrWmdFYWQx?= =?utf-8?B?YVY4R2Z3aTF0WHpQNWJHZUptVndUcGdkWXc4R0pqQmI5NTA3Y0R0NGc2eHpP?= =?utf-8?B?Ris2aEZEVENzMEZkZlkrZ2FPMzJ0Vm9ENjl5WTR3T2NaMnRuVXBPVjUzUUJj?= =?utf-8?B?RW9aQzlKV0l0aUE3UFArS0crN0U3WEs2UjBFZmtLR0VzMWVTMmdqTmxhZ0g3?= =?utf-8?B?Uk1Lb3V0VEJJOUU2cmdZR1U3Vm54Ykk3TjZIZnhJRVRKKy9uUndnclF1aFNz?= =?utf-8?B?UlZhNnJtS2tIM25RaFlWVzVzZVV1REpIS1ZTa1Y0NDFTL1B4RXNVTE9pNHNX?= =?utf-8?B?aFJaUzJGbHJwcWJyR21nSEVZZnRQdDFEenJVZ1RYWGpNTG50TVFxNTk1NzVZ?= =?utf-8?B?L2pDRG9NeTZuY0QwRm5Db1pjNy9lTDFCb0RPMmFodDJrKzAreFo0TklpcGpo?= =?utf-8?B?V29Sa2NROWRad3dxY2NXSEFaUGc3VU9kMHROVEtiSldOT2VaMkVMaHUzTkdh?= =?utf-8?B?MlZiYUlocFU2T3MzaHUrcHN4RElkUXNRbFJ3VkpGYmdSZHRUR1lXUzNhcDBz?= =?utf-8?B?RUhoanM2dXVwU1NSTFFZN25qYnpLdVAyMUh0SXlLNmNvRm9pTWNrQXVNM04y?= =?utf-8?B?Q2FaTVhRbm9vQ3pHUVZHWXdKV2NOZVhVaVdWOXhxV3p0V0U0MCtQb3BPc1A3?= =?utf-8?B?WC9UMDVLWmhraWtyOGRpbWx1ekhnRFNTOTdVYjBVT0Rhdk5lT1F6ZGdBdmVm?= =?utf-8?B?Q0dNWnNEekZGV0xPRjd6RkxWd2hza3pSNkdxNm1ra2JwTm5NdFpwdmRjNXVV?= =?utf-8?B?d0RoSzMwSnRWS3JWcjFGb1BCekh5Njh2Z0t3aGhmbHZQOW5NQUtzdmFoTkVv?= =?utf-8?B?eFhxU3lDSTc2NGlqR3lmdStnNzdDWm9vNmRaaXptTTdkTU1YeTlqRkVKejMv?= =?utf-8?B?QXNhRnd4RllSV3BRUkQ3LzJxTHR6cysxL3U4alRIRzFpV2Ruam5xR0QxRHZp?= =?utf-8?B?bTVkUmE0OFlqSnRnK3Qybm95VForY3Bpb3ZvSGw0NmhlOWx6aUNUYXFGR3NI?= =?utf-8?B?NGY2elFwM0Q0cU1BWHh0emVqMnNobm1hRE1oU2U4QzIvT1N0aWlDVVg4UmZV?= =?utf-8?B?N3hNT01kQ2w3YW5XWW45bndYcWdGV1JGL2FOSEFWdU9Oa2RJSHQraEZ2SVJG?= =?utf-8?B?TTh5YW9FTzRwdjJBMEdmSDJmblNGRkFuL28zZVcrSUt5aVRNNWlnRGl4T3RX?= =?utf-8?B?TGdJdz09?= X-Microsoft-Exchange-Diagnostics: 1;SN1PR12MB0159;6:PRBhMQ8Ak7xfzl63evcNn6KYWbO7qLsIZdNehGuEHEazvawyibnyLmghnTEa3Tsfjg9xU8kLAF8JP7WYgUguBGUmqp9v4qVJomkCEx8ujOofhErztQY/S1FvUxYyp0Eu2bKmRIDzHZSlRHfRsKLsi3YXdZXye3TodgTpqxQGLEycb7MsZOumKbqaIeUomazaCTF//D+u26S7bOPPO2YYLBMXuu5ny6KJ5pdCco4N/NkK4gJGZawfByLwOqkBhrTfxlhsL1cvLy9BF2rs4SxmwoWucKBQlkmnWFjVFYYLToPKqKnjTXSQiTYtjyk/fFYmF9UnrPwyQIairnKDuU0m60OXSXs2bFHVmGjmb87rpmk=;5:7cZY8hnu/WN+wg1wXmJZUOLpquIlKkrtKhLomu7UxsfxZQDUr/KHqg5kSZyZwQwEiq1jx9Cp5s/NeflRQZTog9yIIK+wFt+YSDdpEzUemFukumr53H1snpJWtvJ5qJW9hprQVaxkBBHW3OUlzxXOkD9SQe8YckKggie1Cc+Qicg=;24:Gbh84YjjfO9S89HwVMgnvVzN1kJWWcQJEBzTzBUC3ASmo3yCd/sEhgi74afU0tEd3dJFtUlcQ1ay4iP3hbKgg6CKO8V9bD3n6K2v3GBOjoY=;7:44kwCl6M+SqwOEoEp5hvLLa7S51NLgV+8XskepzljYwJ1lv1LssFw/Jau9+80/ActtqKCbV4qgdDliV3B3ryD/m77qY1I6T4hkAiZ+LegIOosNKGOez8H4lWuyca+gt9238dkdrtAQ0V50yemGK6VnhfeFTIz5MoNWZc1R/J/cZ0BlFY70/G15ZYGskdDjdf2KipuLqdnEooEMVX+btlgGKXgOwTS6/P3uWDIt6GdepwmW5T/zTANx4an9+H3IDv SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;SN1PR12MB0159;20:6y9bYjf0L5GXaPDYQdV4klr077GAjbl8WtnmodnJn5OefuJ4oFxQIOhic+nqvlumHSQXvpsHsrywEbyNplLro0DSGFHee8ih5lWz+ZobcKjMqHW5Zgikr/7QdaHpI7NqYabTb0y3fL6INZ++8UUNhRxQUCWpUtvHLFjqEN8roq6dh2TtJnR4VQF1m0o7z1W5RHXtjtzEZJhQ5yh8BuFPOXbA3M+A0oU9r6/sLsVVFFFzaPht6NmKGqp54nSqvwr7 X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Nov 2017 18:12:13.6601 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: e08b1f91-058e-41db-d08f-08d52541e8c2 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN1PR12MB0159 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The SEV_PLATFORM_STATUS command can be used by the platform owner to get the current status of the platform. The command is defined in SEV spec section 5.5. Cc: Paolo Bonzini Cc: "Radim Krčmář" Cc: Borislav Petkov Cc: Herbert Xu Cc: Gary Hook Cc: Tom Lendacky Cc: linux-crypto@vger.kernel.org Cc: kvm@vger.kernel.org Cc: linux-kernel@vger.kernel.org Improvements-by: Borislav Petkov Signed-off-by: Brijesh Singh Reviewed-by: Borislav Petkov Acked-by: Gary R Hook --- drivers/crypto/ccp/psp-dev.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/drivers/crypto/ccp/psp-dev.c b/drivers/crypto/ccp/psp-dev.c index b49583a45a55..a5072b166ab8 100644 --- a/drivers/crypto/ccp/psp-dev.c +++ b/drivers/crypto/ccp/psp-dev.c @@ -274,6 +274,21 @@ static int sev_ioctl_do_reset(struct sev_issue_cmd *argp) return __sev_do_cmd_locked(SEV_CMD_FACTORY_RESET, 0, &argp->error); } +static int sev_ioctl_do_platform_status(struct sev_issue_cmd *argp) +{ + struct sev_user_data_status *data = &psp_master->status_cmd_buf; + int ret; + + ret = __sev_do_cmd_locked(SEV_CMD_PLATFORM_STATUS, data, &argp->error); + if (ret) + return ret; + + if (copy_to_user((void __user *)argp->data, data, sizeof(*data))) + ret = -EFAULT; + + return ret; +} + static long sev_ioctl(struct file *file, unsigned int ioctl, unsigned long arg) { void __user *argp = (void __user *)arg; @@ -299,6 +314,9 @@ static long sev_ioctl(struct file *file, unsigned int ioctl, unsigned long arg) case SEV_FACTORY_RESET: ret = sev_ioctl_do_reset(&input); break; + case SEV_PLATFORM_STATUS: + ret = sev_ioctl_do_platform_status(&input); + break; default: ret = -EINVAL; goto out; -- 2.9.5