From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752075AbdJXSoh (ORCPT ); Tue, 24 Oct 2017 14:44:37 -0400 Received: from mail-sn1nam02on0089.outbound.protection.outlook.com ([104.47.36.89]:46240 "EHLO NAM02-SN1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S932095AbdJXSm1 (ORCPT ); Tue, 24 Oct 2017 14:42:27 -0400 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Gary.Hook@amd.com; Subject: Re: [Part2 PATCH v6.1 16/38] crypto: ccp: Implement SEV_PEK_GEN ioctl command To: Brijesh Singh , Borislav Petkov Cc: Paolo Bonzini , =?UTF-8?B?UmFkaW0gS3LEjW3DocWZ?= , Borislav Petkov , Herbert Xu , Tom Lendacky , linux-crypto@vger.kernel.org, kvm@vger.kernel.org, linux-kernel@vger.kernel.org References: <20171020023413.122280-17-brijesh.singh@amd.com> <20171023215519.32512-1-brijesh.singh@amd.com> From: Gary R Hook Message-ID: Date: Tue, 24 Oct 2017 13:42:21 -0500 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.4.0 MIME-Version: 1.0 In-Reply-To: <20171023215519.32512-1-brijesh.singh@amd.com> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 8bit X-Originating-IP: [165.204.77.1] X-ClientProxiedBy: BN6PR04CA0059.namprd04.prod.outlook.com (10.174.93.176) To DM5PR12MB1323.namprd12.prod.outlook.com (10.168.238.10) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 9c36a0d2-efd1-433e-708c-08d51b0ef8af X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001)(48565401081)(4534020)(4602075)(4627075)(201703031133081)(201702281549075)(2017052603199);SRVR:DM5PR12MB1323; X-Microsoft-Exchange-Diagnostics: 1;DM5PR12MB1323;3:yIOMwgWypah4twd6qwbfsengaUX4G6VjhYNmtFG/VfJQMiXXMdaIxTvmuA8coqyquoeC42rlfaoDV4iu8FJX8wmbxVUlup84ITS4PhM/1cIaMmewrOk24mSOaPBJ2idpkVnehQYdbhmyHgQp3vjeOqNEu3vnFS0zGCxvw+PhjvFWpbUPV13NegsZZyOcb/PBoAynehAgnr4X0kAVa+KxxNaCSeKmJeSqruTv++7KP/KNPCTofDORzxZtai4Jn/nx;25:kB6qLwRLNkhWmravscRNUhMmaHIgcDjkNhrG3p9pLJ2ZCC3jKxPRzFTmeOhQDNnk1GzT+rDIs8xWRdET7H8R5la22Lg8sVRFbapp8YEKm9RFWftoNS3Zd8Z5IlDNXHt5mYXiNvLtR0GJcxS6qP3+CYvBOh9LK/V8GyVacV/TofIU7E3P9Y4f9XRJ8swfgKvg1NJAQnHVs/H4Ux10QdcSoycgyhGpEoH9CNkF8DzXK161vj6ucq6N6Qhiegx1SNN0HNNoKuZulpvTPe5G3pFaueB2P2z2yIRHcIudReFI+tUuva7uEcZljyfkeKzQsGGWhuzUyg+5OCe0JhvKDzGxtw==;31:j3Rxg6mv/SU+jC0/CpTHvMNGQprKswBF0seMLjSXJ8wZchf8w73tXYSkai/URDTdaY84fqvDdvqrpBPVqv5fsOnytEkcl2sEtVjtCiCyOrNnKJQ/w5uzeO4xOgP+yrc4fTXzIUwGcIQp/As9Co3JK0wqY+TbPX9BvE8A4OZx/42PnTxalLbNz8myzMsLbMohbnKjmk2EPzs6OT1NpfIu6pcUnR8IpzMoPw8tTcnuPj8= X-MS-TrafficTypeDiagnostic: DM5PR12MB1323: X-Microsoft-Exchange-Diagnostics: 1;DM5PR12MB1323;20:6PvfMjDkbWwJqFClkqT9bsE9Ahj8V4KcVJsrTaJ1ayGZxJTIqvTLHmk98HP9BzFsRe+srMtAjHgDXjxIaZVqIYBnAJQ1AFefPanc8pg3KpDyPSjUehR6K32gfVzlWVaZnEW2102uhJYxQxpNKQSfYzt4eL71pmRBpQXy/RIxalvQD/hgIxUaaSCQecC+HqGHtnJyLyKUEBDfksCHAC4++8bB/NYyLAZWkwboq75G+zqGhb2XBtQP7dibFBnkPXx+mmGtNoX9/PmM06baq8ORqoDCuidIvDjycn+QkYW4f/G/MVyMdZdhw/tWxzHtrbEvwkn1JQVUHAwwYmJNXZonSv8R9SWWxoVZxumFwKlK1Zz50KoXuYDM3Ib/aC7VvcMaPpmA+5aKxj7GBsaVHJzrXKuLj94Efo/gMRyJk1H/kosT6z4+CxcCw916/xZUW5/xSM3J+TGaaRQEM0cAhdv77y+DvjOIn2DymdLGL6r6jZUlU6OP0mGlPaAekE6K0zM7;4:UChTb1Y7lqXPRPFsKwilu2mjsHFm77DMS+I8HwOyQPvFYIuthNWcZs5rMlAU7SIe4/PdiVy/YpqAOp/tSqfwR45ABLibnRky7bafigZiRjlXHhHouocnSP2Q0y22v/JFO2epvuZtTrnmlTq4xMOoJu1ZWycHvRdVxdIC6PEw4R7oNdpNvjHoJQKPHq8cMltc/cHRVmTtCfHcmwuhh5BcrT7fnSCQn6UpWkkF+cHVxToSRudSt4PSRyDZGZdbK5jxy0Ax1R+jNJLoukqlJPnJcDBfq1GM0duf7SANY6JnGSmEh6kVwoDpfDgHvLxuZqY+Ys8hc505JRE2C0aC57XdWQ== 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)(93006095)(93001095)(100000703101)(100105400095)(3231020)(3002001)(10201501046)(6055026)(6041248)(20161123564025)(20161123562025)(20161123558100)(20161123555025)(20161123560025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095);SRVR:DM5PR12MB1323;BCL:0;PCL:0;RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095);SRVR:DM5PR12MB1323; X-Forefront-PRVS: 047001DADA X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(6049001)(6009001)(376002)(346002)(39860400002)(189002)(199003)(24454002)(53546010)(16576012)(189998001)(316002)(31686004)(47776003)(81166006)(50986999)(101416001)(478600001)(54356999)(76176999)(16526018)(229853002)(65956001)(65806001)(66066001)(2906002)(72206003)(8936002)(305945005)(8676002)(4326008)(7736002)(83506002)(25786009)(68736007)(36756003)(23676002)(50466002)(3846002)(53936002)(6116002)(81156014)(86362001)(31696002)(64126003)(90366009)(6486002)(77096006)(6246003)(54906003)(33646002)(110136005)(58126008)(106356001)(2870700001)(105586002)(2950100002)(97736004)(6666003)(65826007)(5660300001);DIR:OUT;SFP:1101;SCL:1;SRVR:DM5PR12MB1323;H:[10.236.19.127];FPR:;SPF:None;PTR:InfoNoRecords;MX:1;A:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtETTVQUjEyTUIxMzIzOzIzOnBRa2picTNiSU1HZ1pmZldPbzJDS2pOMjg0?= =?utf-8?B?VW5WODlNYkllb0FWSUdiMVZYSEZIZWE5R0pCWGkrbFNCMVdVbkZ2cjJkMXN1?= =?utf-8?B?YVluN003YUFCeG5NN3FpQlc4MkIrWkN5ZW9sNzZuRGJBYjJBWlF3Y1ZDbmFD?= =?utf-8?B?MWQ3a1FvY2h1SzNkaUx6YzdkV2wyK1d6V1Rscm9rem5uYmNma01WaG9BSHRo?= =?utf-8?B?MGRBbjdJY2d4RXpISzE3MzlXTnROQjl0UDh1OVNUNko2ejI4QW9WQ2RIUnp1?= =?utf-8?B?RHNwN1lYNDBqYjdCL2xLYnhhYWp1aEZXNlFKTER1QWNDdGxuaVgrNzJaODhs?= =?utf-8?B?Sit1cit2UVU2ZFAxVElQSDZxZCswM0E2blA0MDJzZkd0MHFBd2ZXUVp1NE5D?= =?utf-8?B?ZURNWWIwamE2SjJJMmxFMjdkZ252SkFSa2I4RDBMcmF2V0ZJTjdyWENMUm14?= =?utf-8?B?azRXdC9Md3YrZGwzL3cyYmQvaVNEN2EzRE0yMWIwNERyWi92RUhjc3ZLZnZu?= =?utf-8?B?NHp4NFlrN2NrQTcxZ25xajlzMDRMbTVZVFNPRGhxSm9LYlFkZEpXejNYYzc2?= =?utf-8?B?R05BWDZKaGw3c2N1MG10eEtLU3JaM2FNNVNuNm5jQW10UjVteFAyRkVudXVW?= =?utf-8?B?aS9Jdm9mcXp6VGdGNkpzbGhoYnRXaU5CeVExUnJnRWxUZnJnMG91VSs1ZDZ6?= =?utf-8?B?WlNzNHJGZ0ZSY0F3bVJXRnBNZEFmK1l2TnRDWDNMU1BncUIzQ0Raa0t4RGw0?= =?utf-8?B?WVRkUDJ0cllEeUk3dlVNNlpzZFBnVWpGMFJMVGpBUWJEYnBkU0RDTWI4ZWlO?= =?utf-8?B?UnNVblRwanZGTUx4TnpNcHFxc1BJNC9ZbUZ4VzEzVUNtQWd0Y0oxWGlIMkw1?= =?utf-8?B?VDZMRzE3Q09GelpWR1hCdFMwUlk3OS9VMXFmeXdxVW9SQUZDMnc5R0tMNnNq?= =?utf-8?B?Y3dNK1FySDkwMWhzWHQwOVVybU5ySTlpWmxNRTI1UjRGYXJCd3RWZjEzYjZX?= =?utf-8?B?QVpRU0lqNEY5OEtuQVBaNUJMb3NkYi8zQ0tDRHBhdjV2WmZjQUQ2SjdaU05J?= =?utf-8?B?SWJvaVNTN0wxQ0lyWHp5YWhnbHBlRmJiYW5EMXY1M2JCNzFOUHFxOFpaOEhs?= =?utf-8?B?WXNXenludkIvWkdmU2RTbEpQKzZEeHlkd0d4bVpGa0c5SERzUnp3elZQNklH?= =?utf-8?B?YXR3SmdjQTk0dGhNcFVYeHpVWVVsTTRaaytVNlBkbmlKYTBBOFBua0ZLVkVV?= =?utf-8?B?RkhlUStSdEl2Wk1WMjZzRFB1WlhNc1MwQytjaUllRngwd29DeTg3UVVCZ0lI?= =?utf-8?B?clVGeWVaZGNDTXZtR3AvajNnTnVYTUdaQm1VMDBuazdiMUdUdnh1ZHVTcFpj?= =?utf-8?B?V0JPZncrR00rdXU4M0FuMjczUndNeTQ0ajQ5bDQrUDBpb3Arc0VvcGg2Rlda?= =?utf-8?B?amo4b0FsWlh1dmFtMEVaeUM4cjhxY21Fak94YSt1N0JLQVRWZUM5WmI4OUow?= =?utf-8?B?eGRkVEZRQ3dCU1NVeDBvR284ZFBzQUVoVW1pR2QyT3dsSkVJTnF4MnBQbkND?= =?utf-8?B?OW50OUIxcHcwbTVYenZCcVRmYmJ5UWNaVkN5S0t6UCtrUDRCeUtxb1F0TXZ5?= =?utf-8?B?YlRVZ0hmUFlDbFI4R0hjMUVWcHpIY0RIdTZPRWZQeDRQZEhPSmtRZlE0MXZu?= =?utf-8?B?Q1RyQVcyVjdhMWR1WHdmL0VwQ0RUWHRyajJQNzVlbTBCTzBlaU54bXR4SUtl?= =?utf-8?B?VlpwelJUWktlMS9nbEdYWXR2M3Z0b2l5QWUybS9CUWpYSitEcGJkak0rUDZt?= =?utf-8?B?MEhSYkxBVWk4SDVHTFJZakM1aS9Fd0hMOUdsU0t4NG41dlI1SjNiOTRIMUEz?= =?utf-8?Q?CBpbsio7XnXCP8WghRNittp07y2dMWO+?= X-Microsoft-Exchange-Diagnostics: 1;DM5PR12MB1323;6:Svn3PcK2e4f/BXnIYlJZFsrDI7MlzDHZMWG51Sywv8ontcH68L5CAi+K6MaApZboz1PWPZpaxG/lrxoaRoJkuf7U1JjdK/i0ZoCpL7rvBDMF4bw9Ysbv4zRcCagI0P5eOK8WFd1aQzBIDSrHjmcjwKQi9SVE7qcba+sphyw5DC/Iq5UWju6K39JGEFHwaNGzk6Bfp9A/IZFSdE/0Jlh2sZOpnrTYiubJvGUISOUeUbQo0yWAyVUL61r3gRM6l2OTfk4z+P8OTR05F6mmo7w4gvqt8Tiiso56Ep22UwYQ/0iVr4CODdsGZxQ7UrZi5DKIkpDjx0QdJu0DJm+nhg1APyKdOCpZubUQTLCXramjwRc=;5:ur/nagieCMDwYAz0KUAEGIWpFWUeIOTWcGMf9aw0dKQdRyQlrTFCvL9z0uSRX9RW97cOysKR+5tnmG8/LiVnCS2n/6bXlzWZKn5U/yQLoYCrwvWaXJPF40LSsW9xewlBP6yOBr9abajnMS+iERMiRocp0mjE54EpxhkxaEVXu84=;24:UrcZsWN4/X75cm/e2iKFUOkUop/s75zzWrA+r3qTLYUWUpCoNRPnkjYp53k2m/HY6x9T3+IIr7nNG0AA8dT/IFav6vm0WzVYRaoBtCJiP+s=;7:gjvF5OI+4sg7anEL4vKSRU0JYAx2bjaUxHAColQrMutiz58g+3GFf7vrCq4VuTK1+EW1SPxB0UTB5J+oDaP2YqU071ft/PmtPMoVco26Ol5rEyDLfRNn3Iy099Cb+AL6HTQ9dtUlvMPtHB4AdaR5XCTepIhMFeFuVjMsPGvSTDOzgkUhC36/OPQBVSMVLw/4q7t9HWPcTv+9Amh9j9c+j6QoLP6sDpMvmDDAHclpuUoB+voRyCUWk00T5vzRLRsz SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;DM5PR12MB1323;20:g+44N3gIKrAvHPnDJKjAuxhEjupzMsvE3YX2AMPp4GxLDafyI+irqV2Y0cgHRAcEkt3O2V28M3fEVUvc72f+lnnR4YxA3GgylJ7COaT4PwUpg9VVTLy6nxcA7dzO5XlHO4aT1GGuydN2ZHv3T3tTUm7zQ15G92dzEFXs/keWl+k6nzaIQJnCMsTObGbVxqy9lQBQegWVeSKKDPTv6s0wywMMDJHtfbx029jkBzVN1F/Trg/1e2Omwr4r9Jnib2Yg X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Oct 2017 18:42:24.8063 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 9c36a0d2-efd1-433e-708c-08d51b0ef8af X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR12MB1323 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 10/23/2017 04:55 PM, Brijesh Singh wrote: > The SEV_PEK_GEN command is used to generate a new Platform Endorsement > Key (PEK). The command is defined in SEV spec section 5.6. > > 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 > Signed-off-by: Brijesh Singh Acked-by: Gary R Hook > --- > > Changes since v6: > * when sev_do_cmd() and sev_platform_shutdown() fails then propogate > the error status code from sev_do_cmd() because it can give us > much better reason for the failure. > > drivers/crypto/ccp/psp-dev.c | 31 +++++++++++++++++++++++++++++++ > 1 file changed, 31 insertions(+) > > diff --git a/drivers/crypto/ccp/psp-dev.c b/drivers/crypto/ccp/psp-dev.c > index dd4bab143de9..18e2d8291997 100644 > --- a/drivers/crypto/ccp/psp-dev.c > +++ b/drivers/crypto/ccp/psp-dev.c > @@ -195,6 +195,34 @@ static int sev_ioctl_do_platform_status(struct sev_issue_cmd *argp) > return ret; > } > > +static int sev_ioctl_do_pek_pdh_gen(int cmd, struct sev_issue_cmd *argp) > +{ > + int ret, err; > + > + ret = sev_platform_init(NULL, &argp->error); > + if (ret) > + return ret; > + > + ret = sev_do_cmd(cmd, 0, &argp->error); > + > + if (sev_platform_shutdown(&err)) { > + /* > + * If both sev_do_cmd() and sev_platform_shutdown() commands > + * failed then propogate the error code from the sev_do_cmd() > + * because it contains a useful status code for the command > + * failure. > + */ > + if (ret) > + goto done; > + > + argp->error = err; > + ret = -EIO; > + } > + > +done: > + return ret; > +} > + > static long sev_ioctl(struct file *file, unsigned int ioctl, unsigned long arg) > { > void __user *argp = (void __user *)arg; > @@ -218,6 +246,9 @@ static long sev_ioctl(struct file *file, unsigned int ioctl, unsigned long arg) > case SEV_PLATFORM_STATUS: > ret = sev_ioctl_do_platform_status(&input); > break; > + case SEV_PEK_GEN: > + ret = sev_ioctl_do_pek_pdh_gen(SEV_CMD_PEK_GEN, &input); > + break; > default: > ret = -EINVAL; > goto out; >