From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933566AbdKAVRR (ORCPT ); Wed, 1 Nov 2017 17:17:17 -0400 Received: from mail-bn3nam01on0087.outbound.protection.outlook.com ([104.47.33.87]:27280 "EHLO NAM01-BN3-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S933175AbdKAVRD (ORCPT ); Wed, 1 Nov 2017 17:17:03 -0400 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 v7 15/38] crypto: ccp: Implement SEV_PLATFORM_STATUS ioctl command Date: Wed, 1 Nov 2017 16:16:00 -0500 Message-Id: <20171101211623.71496-16-brijesh.singh@amd.com> X-Mailer: git-send-email 2.9.5 In-Reply-To: <20171101211623.71496-1-brijesh.singh@amd.com> References: <20171101211623.71496-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: DM5PR06CA0064.namprd06.prod.outlook.com (2603:10b6:3:37::26) To DM2PR12MB0155.namprd12.prod.outlook.com (2a01:111:e400:50ce::18) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 52ef0166-750e-4ca8-5cff-08d5216ddbb3 X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001)(48565401081)(4534020)(4602075)(2017052603199);SRVR:DM2PR12MB0155; X-Microsoft-Exchange-Diagnostics: 1;DM2PR12MB0155;3:u0ip4NHZnuwm53zxrtXvTmvkwFGtn5/JLO/zms5cYmwh5jD2xSZg6EQf69bd38Ywey+p+gpe1/UakVBcFwQs5JdbLj9qIz/JaWClmpIeS3KWAhLeN0dhIhpJjDnIq5oXxaky+8gS/f4trhTuU4H+GsZjOlQDJIud4f+y7icvGGQxPHPlL7odvdjy6nrbzQchp/GgCbPAjU3Pa/ff8O0++KCbLhpJLEfkMZaiJRl/Ut2YcAAY5BPpP9MeEgVb7Ghl;25:3jKzUExMvjkcFDXnuv575sKR5/SeSTgyl/bCjVnvz77gvtuZA3Nx0s0ldgzWNlWPihmcn9G2Pnv4otxeZ6aF8XD9upKcrGvlWC+WzraiRutfLVrWPx3Rn2GzRym6pEOE5kMM1dZa3VPKzwH9tX2k7H+JY3W5ue+XQ9XVZGFmKNqhnok+wkOGS6Ysurc2HAz89eLCiswmegDe27d+xzYBJP2nCBQwRFHqiHY7PejlZa6XsmYonZ4Hs90gnBtUCIWnDLA2TJsgPw3CWbWmcYLcBcdYJTqRG2rCzCYyad2uVD4Igp+SN2OEvwqHptLbzM4ekyGbHBiR240nTzOoFk/n4w==;31:UPmEmbiwMrMxr7BIpy4LngiKXXXdOpj5exctTC62n7f36CQVeb3+2MvxqWdBN1TLT/HhvfsgFaPhtJBlQ/qpmKhUBUfw86RH1CX83cVOUl6Pp9qFh3of9av6RIQuUfS2Mf9O+iuE99y+7e2L2H3aTeK/jaofPLek6YLnbBahviPpDSSZSXr7JUleNw+umpvIqC9pWfe18uKo1ansGFkwAxoxduuTX/T8KIcjrdLa0Go= X-MS-TrafficTypeDiagnostic: DM2PR12MB0155: X-Microsoft-Exchange-Diagnostics: 1;DM2PR12MB0155;20:9tO9zfANwuZuasq9pa+Pn+tVq7eRqSCcQSz2mPVeH+6jugJFscOoRRx2Hvq+pSGTd3FyCEhLTUfF9WyU6fSk0gCTRh3LrvF1Xd/B8aFUojFhPeN9pPapNWpE78qgdawHjra5+2RBwnM6+DBEjwiNMNcC/mSAaqma2YIdKV/z+bHbYs/TPG28NdcM1S7Jg1spo+mwpjAnXpF4qIHIND7GziHBMl7wNjnCjRmUgpq35Hoakc5gw4WNR5mU+l/5tXcdrnLqpHXDY6IAhCVfgesuz5WPCeGeHoNbM0x4QneU4RWBjsMy1tDGCzwUMJJZq7ZVtueOdKXE9kck/15trejcqRVeVxGcuOYw7cIYmiCFyMIug3tiQsHj3flT4rgd9cJZd0Ba8hSLM9Iup+AFk1ZxU1CRwpm1vCXNWzQchOtrKuJb1zQKcZxzElw240iphqLaQBTzj3otZIJUMOnhDrRyXK/XYQi7yh4Ac4BwFVqDIakmm0KB7iuwkreIyf2QnjlP;4:a6lPfn+vF1VLXKAgN4+Tfg/KTyxDmpgaF6v5WW2n/s19afrnAq07c6Q4mfSmGcWL+412uMWvjhsIvULfHqdGoUAuOiC2dXWWnPPURfNd6mvXwwMV6UwVsNMr9PGpB8nUOEcI0U0XXIL+hdr2ZytlBPTMpVODWhoR0l6CoqSzzawzy3npkFau0D/TOZ3SpTKTZPKJt9Yz0gWSDJOMho3ezOUtxCS6jGl82VpDZvrPTGgyHfJifFKoqM8hinXOfXuzf97b8ITWftIR1cCMj8Mj14oqvgIQL5HtthHOK5+MGXaAvm9U5O8Lo/CcebeTUN7FwJsmuq3I6mU3N1X16Mwm5Q== 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)(3231020)(10201501046)(93006095)(93001095)(3002001)(6055026)(6041248)(20161123560025)(20161123555025)(20161123564025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123562025)(20161123558100)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095);SRVR:DM2PR12MB0155;BCL:0;PCL:0;RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095);SRVR:DM2PR12MB0155; X-Forefront-PRVS: 0478C23FE0 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(6009001)(39860400002)(376002)(346002)(45074003)(189002)(199003)(1076002)(6116002)(97736004)(66066001)(50466002)(3846002)(25786009)(4326008)(54906003)(316002)(8676002)(47776003)(36756003)(23676003)(50986999)(478600001)(81156014)(81166006)(105586002)(53416004)(53936002)(189998001)(106356001)(2906002)(16526018)(2870700001)(76176999)(33646002)(305945005)(7736002)(86362001)(5660300001)(6486002)(101416001)(50226002)(68736007)(8936002)(2950100002)(6666003);DIR:OUT;SFP:1101;SCL:1;SRVR:DM2PR12MB0155;H:wsp141597wss.amd.com;FPR:;SPF:None;PTR:InfoNoRecords;MX:1;A:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtETTJQUjEyTUIwMTU1OzIzOmoyNCtLL2F1S0FxeTNOSUFMTEZoV0JxeVZN?= =?utf-8?B?SHl3SEF4ZWZqRmhkSWNJYmhoUTJ0NlNBcW55STdCRVY3dTJkclhCaVNpVU45?= =?utf-8?B?NmRaME1vREs3RVRkWG9iRVM4WENSMXNoaFJaRjZIL3RMeVIybC9vL29kNDlx?= =?utf-8?B?bHBWNGFvcEMvVlNlQTR6dGpsZzBmRWlvcnA1VXNCLzlFYk04YkJvWC9pM0dQ?= =?utf-8?B?TjFFT0o1cHF2YXZxZVpzbHpISXBVSGIzQlFLVHhXbjhpc1dHU1RUaC9GajBm?= =?utf-8?B?Ly80MUIyVWRMUnU1UFVyVDdkMHd2cDNTb1ZsQldZZjgxNUg1Z0trR1ZsOHo5?= =?utf-8?B?N0lOa0JvZXB1VkdidWFId0JyakZ6U1BmekpiRjU1WnhOeURJMUdWTlducGQ4?= =?utf-8?B?OVlpb3E3TDV3S0hLV05odWRsWTRXZkhBVHprTVh3Mm9mYWt3amt2aGdsRGF1?= =?utf-8?B?eStOdzZQYXFYODFWUTZ2UkVDNzFQTVZxUmZMNFBKVGZId2c4WWo2TWxGSkpY?= =?utf-8?B?L1owMXpVOTBPdytUaTdhOUdKQzA5TmtMbmNDc3Fwd050dEx0OE1RTDByOTJi?= =?utf-8?B?Q21jNDg1ejBNY3VWRk9hQ2dhaDF5ck9xWTU2MFI5dVFxWFJKVWVUaTZmdWVD?= =?utf-8?B?bGRYaXRRK09EUFRFcVVwak9RODUwNlgreW5DMVdta2VEbEtVSXJHb3lIcm12?= =?utf-8?B?eTZpbVVMSEpPRzlQR1l4blU0TnplNlFqa05YbFNVZEdRNTJOVXQrRjdUWlJY?= =?utf-8?B?ZVduZUl0NHUwTjdsdDJQRFNaYWtuUDZwaFpGN3VCU2x4eU5QZW5BSkhYUlUy?= =?utf-8?B?MXczVGdwQk5DRUdMSkQ2eGh3MW5EWFRqUnhLQmFRMVRvc1pMcVRrV2tnUnRv?= =?utf-8?B?UXRRanNWOWQ0SkUveHlFQ0NpTFNLMXJRR3dVSnVTYVc0YmlSUlhFbmU3WGUw?= =?utf-8?B?S1RMSldzQjBkU1UyV1RlTUlSQjVoYW03Q2dHdFAzcEZ3a3MxWFFZNHpaeGJ2?= =?utf-8?B?ak53amkrNW9xZm95cE5hdHY1UWpVSjRWY0F1V2NYME1lL0F2eS9OQkxReTEx?= =?utf-8?B?d3BWRDJkMWplV1RyL1duRVFEcWFMT1JGenZHUlNWMzYrRzJ2WFpSb3RaMm5I?= =?utf-8?B?RHBxeFp4RlJxNUtOZHA1OFB2VWhmUEFWeU1pR2FCeUxieisrWGdMbmtJR0M3?= =?utf-8?B?T2xFZFpTZmJWeWthdDZIaklPaFkyMUxqaDhBS0FFZkgyTm5vdEdpQWtBRFVp?= =?utf-8?B?TnpKM25rMk9ZNWFRbjBiQkM3dG5Xa1krQ0R4a2xaRXRjNnQ5NTZ0NnlQSkpW?= =?utf-8?B?UnRtb3FRUUxLeTZ1S3FqTFJuaklXVWIzUDlaY0E0Q090M254SThPMlJIL0k1?= =?utf-8?B?YVNucmR4dS9uNHdZc0dVUjd5Tm1kbExBa3k2U1BzMG1YZE9sU1RHN0VQSHRT?= =?utf-8?B?cVFEVDBQbW4vZC8wTERWMzRHMFB3ZG5XenBMNXY5UFRzeTZiTjhybnFqOGlP?= =?utf-8?B?UGp2UT09?= X-Microsoft-Exchange-Diagnostics: 1;DM2PR12MB0155;6:2OeBtfw42sY+xf/OoNzvnUIbsy5Y6c51MgDq44t9JjSyMc+jbJTDsf420XfeTSiboEm9D4suPi9KBmIBR66rb1V2jntKkE1gdyNaLL7orNEKDqHuOVGtmmFwXwEd41vJuUKq36MVQZwUK0azKbAz6FLz7zTC8sYGbrIQjsnC9JBGMzeqf0TdFX/nbrYrXlfVDGNGn1yap4nzh5DM2PmCfT7+Nak1/5H5APDVE+SYH4i6Yq85Pq8rbqdmVUYBBCvSuQo87dCPfuWAtYta5Qo28IS+V+ztnAc8qlXSFMgMpVeKSURqlQzmCv0XqHQd9FwHeiQBEw7t3OtAxHoYQHmzMe2Cbbq34UUZD1mb93lDAMI=;5:UEOzGNCg8bKiFJQTGnL3gRH3NQwozWHcTlWLTl6hb/qISDyd9mutkvdEVzlvyt0nqz9M3NqpOA2BvYsrpGrGBqXKc4LCidvnSqsN8jy71b3+wZ/mCPXUvUfIOuS0eboLCH2UaQ/DmzkSvR5cwu4cC4rslM56AXBlg0kBug4mV5c=;24:jAc1liP3sXpkOD57S/CKgHZerTrKPMSZ/k05SzLw0B//blX4ppAIRQ5Hqbjq+3JawJt4Xiz6M/Trt/zBWxYBY4vsAW9j3ItJ6X7QXOsT2fo=;7:WQisY9cMDEDC9oOnATlD3Z0K5435EB/yGcqp7mNUCb1GX7qRouEty7lVzD7GkCjIPkM0EP/QX4e6pKtSq2jywoBu8xxm/+YYVULhlmYUlsY5WmBAkoY9OV5W665q8M6dM0YbYjSIyDd1paq4fsbhX3n8osZTbMtzikH4up++z4TuqWbfg0u2Sa/ZneywkCtrtU/Gx3UM1Zbv+R1RVHP6jbYx6Xh4J/FfZg2KLKrYiveY17QHChTG8kGfUrjyzciG SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;DM2PR12MB0155;20:hZ1O3vW8Vx90f1+vORMoC93JTDVu+d92cTN3K1C4v5dAwUpgqs8U+RZwK7Y9NbEEKNpVW6OMjaoZ397wR/BDJz4OsKw89QEiWvIJmH2UQu6bO+XZxiWXL3Qs9wRKCgMY7DuGIHoI7I2O9k1rJywRaCq2IAxDHu1Ki2czZr1C3Bjo3ktergFKUzMWDVEZBRhg50a+AL29KPtfMmy+Zm+5YRJAT30K9DoHpxgXHL7W7aiWCYMIhXj4DMlcVh3VkNCz X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Nov 2017 21:16:46.0628 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 52ef0166-750e-4ca8-5cff-08d5216ddbb3 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM2PR12MB0155 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 a757bd1c34e8..ef473ec4a413 100644 --- a/drivers/crypto/ccp/psp-dev.c +++ b/drivers/crypto/ccp/psp-dev.c @@ -270,6 +270,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->sev_status; + 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; @@ -295,6 +310,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