From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753411AbdJLUfH (ORCPT ); Thu, 12 Oct 2017 16:35:07 -0400 Received: from mail-sn1nam01on0065.outbound.protection.outlook.com ([104.47.32.65]:6894 "EHLO NAM01-SN1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1752452AbdJLUfE (ORCPT ); Thu, 12 Oct 2017 16:35:04 -0400 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=brijesh.singh@amd.com; Cc: brijesh.singh@amd.com, Paolo Bonzini , =?UTF-8?B?UmFkaW0gS3LEjW3DocWZ?= , Herbert Xu , Gary Hook , Tom Lendacky , linux-crypto@vger.kernel.org, kvm@vger.kernel.org, linux-kernel@vger.kernel.org Subject: Re: [Part2 PATCH v5.1 12.5/31] crypto: ccp: Implement SEV_PEK_GEN ioctl command To: Borislav Petkov References: <20171004131412.13038-13-brijesh.singh@amd.com> <20171007010607.78088-1-brijesh.singh@amd.com> <20171007010607.78088-5-brijesh.singh@amd.com> <20171012182844.kjv5zab7o6fwwwdk@pd.tnic> <20171012202152.dzlzka7vmojcxu6q@pd.tnic> From: Brijesh Singh Message-ID: <26a451b8-2c34-979a-ccdc-15e4948abb80@amd.com> Date: Thu, 12 Oct 2017 15:34:54 -0500 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:52.0) Gecko/20100101 Thunderbird/52.3.0 MIME-Version: 1.0 In-Reply-To: <20171012202152.dzlzka7vmojcxu6q@pd.tnic> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Content-Language: en-US X-Originating-IP: [165.204.77.1] X-ClientProxiedBy: CY4PR02CA0046.namprd02.prod.outlook.com (10.175.57.160) To SN1PR12MB0158.namprd12.prod.outlook.com (10.162.3.145) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 3a239fe3-be02-4baa-cbe4-08d511b0b68e X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001)(2017030254152)(48565401081)(2017052603199)(201703131423075)(201703031133081)(201702281549075);SRVR:SN1PR12MB0158; X-Microsoft-Exchange-Diagnostics: 1;SN1PR12MB0158;3:j6+vItEosqHIDZ9dGaVnhLBEWy/OXeqd7KCKHGAgxlIubKNLFix0wJsq29BvkcRI4hnUFFFdLn8ue9M2Rnw02ZfRywgmrMyV+2+dhgnG48bkiVRAsS855mb8L7PXZNpes56WVOJFGlpeocKqiGcL5KjwWKqOdiPDOkeK+oCsvAXTSM9UjFdOnUrA0Vbu8thIHMvoHKaXXyWXJth8MkRjm2jlaB0F2+OZzaRe3Z84npaiO5q8W22luhBgt/dQoZsq;25:HvqzSqHNUHW68fas+MDxn62GIq54QYixtgZhqH4P2aqsZBy/EZ8B0Va3ovIozn9zOCsSTqxkR/YXtOXBo0FZ6Qe712JGRcjUGGu5qGJf0YIOlwaRjOySSo6873HCeaCDyJXyphF0sUAIuGQutsUemw8QH2r+MTaOjhLDj20w9RNrjkqO+8y0MqCaDTHW9zNxVXMsvJxqtZ3Jju6jTEqqGlw+jPUdj14/4D53zaDvtFR13P7knRk0ScVhi9F2j3wQ5yRE65mWqh4UJjeyB/zeZwRy6m4ETxMqPSU03WaYD9z9vn4qKpJiul9hBhJhh4dnPznDXcho5SK8yDTVBnHecA==;31:VjgWD1IQ1QGz2QsKA7KmpsdLDunN66BUjsVbvSjJjas3YsxF0SInsF7FfxeV/smcZbIwaR62q4xaQj0AzDitaHK87HdzubXTek43ocSnpP6PV31XjvIoWQigZQBP5DCrSiFAyKhXE+oddkKOPM6THbrKYhlhDIzc5zbrtpJN+Q1W9yULRTaoAywXrhzTI0B8eHR0/HolC4rMZ4CAK0s7gZRn5pMsW43XGOlhoSv3tQU= X-MS-TrafficTypeDiagnostic: SN1PR12MB0158: X-Microsoft-Exchange-Diagnostics: 1;SN1PR12MB0158;20:txl/KxX/VcaFF2+fFnR7tSPVjn7Lh8SLuVaqBuTsCpyUOZARJkjro7z+ZFZJp6DAbSvFFQKOKBQIc23BHDkzxVX+OzZS03b6XU+Si1TQOcLne+/VqXsr73hnKA1NHi56sJbXtRbELziEdm4yZkjwl6a1CsFjqlX22q3OZPaXxTTW5HXWuDgGwJpRKK2ok5I8YiVMdnKLypfzC+Ip/NcEB0YVDgs9NTyRehTJpJlolCH+5ykBkRl3dFshBM9S+rEyarmMMgfh3ont+4gQREApEL+k1345PRVIkuRjia2xCzL55xxzmc/t4mC49qUGP3ppOyXQJJ2SVd6iM2AJvtywTOBpiwFUEto9kCqHqr2AktyxoID6YZf8ILKLu8NHEk2+Xd8JM57xSqkbLN2fwK3dVSKLxtxntIY8laevS58KKX+hv+yOOe+j3KlsdnDYkLUERH07e1iV/VnvdVPQvkV/ZLGT2PtkdbiAWX1rLdbBYhKHphyzbtTdgbEBmPH5NbP6;4:4AV4f8E+UoHFkMVkN2E6psRf2Iw9F5KQoi7TAB2wRekvRTrKEehKmGkaZqaJqdAOpwCjZUKEbzHV1QeOlddHaPSC3CDAK4fLFft4D0omZfdnTa3Cd6sl3ionpryXGos/2537K5mMu0vF4/6oM+1nPAtuxQb6LNjcDG5avhde5f7in+YF2ndY1+3soEwj3qHpQ6CBPKCJFf5zJry8Csg83Gqxs4od1w34B6y/qnInsMkVu3BjGL5h9UBD0+/UGO8l X-Exchange-Antispam-Report-Test: UriScan:; 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)(10201501046)(100000703101)(100105400095)(3002001)(6055026)(6041248)(20161123558100)(20161123564025)(20161123562025)(20161123555025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123560025)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095);SRVR:SN1PR12MB0158;BCL:0;PCL:0;RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095);SRVR:SN1PR12MB0158; X-Forefront-PRVS: 04583CED1A X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(6009001)(346002)(376002)(39860400002)(24454002)(5423002)(189002)(377454003)(199003)(54906003)(305945005)(316002)(25786009)(83506001)(93886005)(64126003)(16526018)(23676002)(53546010)(478600001)(65956001)(65826007)(5660300001)(31696002)(66066001)(189998001)(47776003)(6116002)(58126008)(3846002)(36756003)(65806001)(86362001)(97736004)(33646002)(53416004)(229853002)(106356001)(6486002)(76176999)(68736007)(6666003)(2950100002)(6916009)(50986999)(54356999)(31686004)(6246003)(81156014)(7736002)(8676002)(81166006)(50466002)(8936002)(101416001)(53936002)(4326008)(105586002)(2906002)(2870700001);DIR:OUT;SFP:1101;SCL:1;SRVR:SN1PR12MB0158;H:wsp094352wss.amd.com;FPR:;SPF:None;PTR:InfoNoRecords;MX:1;A:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtTTjFQUjEyTUIwMTU4OzIzOkxLSlR1Q2U4cFpZZHpwU0FveEFpWEdMVitP?= =?utf-8?B?YVl5QURxTHRhU0MzcXMzVVUyT0U0SUJna3F3RjQ0aFVQTFIwYVN5Z1k1bVB4?= =?utf-8?B?Qzk4L3pqcFVMYUF1R0JtTUFLR2pLdmFlRzM0Z2F2aEdWcHVxbVRHRXBLeTZJ?= =?utf-8?B?V2xqZ0toamJkSzlIMnlPNFNwZ1BNaEFORnRuZjYzMGNGbDFaUkJxZk1OUEEw?= =?utf-8?B?QjlTTFZuN1BSWDB0RFF0N3ZwNTRKa040d3dRYnF6WnJxcWNxSjBOOVNQbnU0?= =?utf-8?B?R0V6ZjVZWFlZZjBKRWZXTlNIZlRJM3loTHl4MGJEb0t4cE9KVHhSclhIYkM0?= =?utf-8?B?bU04NzlBcHJkYUFCTHl5Z1hLT2xya01MT3F6OUE3VEx2UzhJWmI5MndQVFhm?= =?utf-8?B?T2QxY2VwSjhvWkJtdm50NGNiZVVZRzJFZmRJeitxdEVyOHlURTlVNFU5ME0v?= =?utf-8?B?OGU3YjdrVmpGSFR5ci8wZkNwYzB4YnZPSm1BejZEUE52b3BibGFiYW5CWGpx?= =?utf-8?B?cHJZeGpOQ2c2bGM2eWJCT3U4NGJublJaWEsrWkdRQ2FmczFPQ0lQb0thdEww?= =?utf-8?B?dHBtcDB1bGNtVGJ6bHdWcExkYUhUNEFhOGpkZHpiNlF2eGJ5c0ZIQW1UdjUx?= =?utf-8?B?N3ExY00xWDRIWDVyOUxhZmU0TnBuZVVEc0JURW9pY0xySGR3KzI3NHgrY1Rz?= =?utf-8?B?K0c2d1hZRTBaNWsxYlUvNXh4Sy96OWNIWERJRmhGV2dwLys1c3hhMWx0OEd2?= =?utf-8?B?WGFGNVlCaEhHR3JDRHg4dDVubHdTVVV4azJXZlVmVTI5UmV1dk5YV2pndko0?= =?utf-8?B?SWRlMUV6MXNZaUhRVTMvc1RvekxRY2tQR29XQkxVcEVmSFFFR3JtRWsrdWdn?= =?utf-8?B?Tis2M0VYRVNidVJTVmlTTDlXb3RsL2w4aEZqdDc4eUZCVHZZNUgxSi9IMVFq?= =?utf-8?B?aGFpaHVCdHVuSWRqMHAwUVp3RkxsMWNUQzFIbXZjY2J0TXRHeFV2YmR4S09M?= =?utf-8?B?ekhXMEFrdkx0QVo4UjFYZGxmNFN2WnhaQzZweXRCK2RJMXJxZVkrTkZGRFBQ?= =?utf-8?B?b3dqWUhXNXdNZG4rMG1oYUVkNTFGZTNDV1JBK2RxaTRjUlBLZXpDTmFOWnh5?= =?utf-8?B?eTQ5Y25pd1ZXYzZZNDd1Z2JybkNyOHJ5ZTNxek9vTXMzSkcwb3lyL2tQc3RV?= =?utf-8?B?dGdhaFNxWjBXQmlud3BUMjJTMGhFQUFkNEh0cHJGdlM3UTZPVUozWUtob3FC?= =?utf-8?B?Vm5OK3NZNlRHVy96cEQzTk5LdlFMaGZodE1zckFqUEw0VllmWGRzS3Y4aitM?= =?utf-8?B?eXRYVGI5R0ZwTDUyRmpBZXZaOGFndk8wT0JpWG91MFhqUURmYUoxNjNueE9q?= =?utf-8?B?R0NhVFh2QXA5bGJDNXpWVkpaU3ZYejc3bElYcDcvQ3BrYVhwZW5aSENobTVO?= =?utf-8?B?aVBNeGVUL1FwMnlsZ2RUb0FqSTRQcSs0ZjBiRmxUbnZoLzVnU0lqTmovbGNE?= =?utf-8?B?dEtaT1FNcWRETzZsZ3MvaVpySHdFK3V4d3dtWDlBNzVCdTlXK2Q2a2s3blFF?= =?utf-8?B?M1c2MWppZG1BL3Bac0JOcHNMUzgxV3cySkZDQmd0VUw1ZUIrWXREUGVEc3JC?= =?utf-8?B?eExGTHBKNXVDY01yOUI4MWVUako2ZU1VOHJEZjJzYnRlc2dSMzRiUEplVDFC?= =?utf-8?B?RFpKb2RCTWQ3MFlLdFFpME9SK1M0L2VUN0pCMFZORTAzdUJIeXdPeEY4Zi81?= =?utf-8?B?U2hQU3c2enhaeHBsemYvVVQ2L3BvcC9NRFRNUE5hcGNxcFdHQnd5U3pYUFlt?= =?utf-8?B?QjZoMVRLQ2VRQWpFWVN3VE9EaTBFck1IV1ZPTXRhYm9QdXIxUUxnMW0xVWtF?= =?utf-8?Q?kHQNuS8kZdLYeAX56JK99mRczzccg7ah?= X-Microsoft-Exchange-Diagnostics: 1;SN1PR12MB0158;6:amw7vj2rzQagm7a7gawwpOF9lLI5ui8BMh8Y0iaYbfxSmodxDBT5R/Bf4UM08WzvuNG+wU9rColh8ksMEgXHG/B/Xq0/PaqqSmP9k71kdOo63KjXqO8IvO50t6Hc/hHrzUVWtnRS/oquDLJ8cO+R4uU+Gh6mXWVSm89mIEIrrwLd3zvQoQofL5wNMxmSmGydVZdg/1iYgjEITlipFJJZSESsWbHKjy7hjGGDj68mOKxiBrqWJNCofd7nu9hs0nT/fHOFPnHK9Pnb1IiCLQsewffIKw2xi8pskQp8tOHCkcsUFHrHt1F5yACObnxmQ9OPpgTY+BsV0eEP5NrtVe5y3w==;5:fCWxvBZ8pjckm5pFBRD4UbKrSN+3cDbJxjbBizLJh+qkHoo1z/PiZvqfzWAk4u5XOIbbaE+f2GCkr32aa63mpi+t4CD1cK57nTLlyvS2XOG+tjLJSB2eN8I6G/eViTqS3zJHetejG4kRJYC9N7ZjLA==;24:hQ8RupiCWAAkyUhCIxlq8PjkgwiRyGILP7FxhV79MLFwdm2B9OYywfybL+TFfordjZkrjXOx+rxEk7x39kRYUGmD/TI3YOV6DVuBdGQXZac=;7:loBJ7mhxQj7bWaHmpgWt7AylX6/10/QnGqiBBtp69y+oR+MyVgHiXI2jG6pRltFomcqD7NEVHJqMiv1qqt9UZHom/FXAQf1I2nMRPLz2W9ktxMSbPAJ/0dxV4t4JyYSDzP13iR9ztX88IaFW4BgDdvDevJ0k7axwFptFaMJE7+QKGj1TOLUG7uUjKXcXUasixKTKd7fzTHS4SH0YqFzNnBJBJb8d48EopQ+FOk7tLRM= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;SN1PR12MB0158;20:Uv7XFYY1k0C50JVj2fooDAVULdDSQJqccis0PiQtY6tt5Muj7tkBZaMif/qFtsYfSQQlaIlhx0MIZdfbE0kR+GqvESD08cw5S0z0O4Edxi6tGG7rvNB0aLG5M4IHpdYEtLCuOTIvXtEEulSsXWGjuTbRzIGUGNDfqzrcgh99Lal9IajacUx8wr6977xWTHZyQwzgfCDTqkcZpaWpf0Lc1GmgxxejqgTWIcYvT1fEOR0qB6jIRBaxkxWmKcZ1ojNH X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Oct 2017 20:34:59.2365 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN1PR12MB0158 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 10/12/17 3:21 PM, Borislav Petkov wrote: > On Thu, Oct 12, 2017 at 03:11:07PM -0500, Brijesh Singh wrote: >> Lets  consider this scenario >> 1- platform is in uninit state, we transition it to INIT >> 2- PEK_GEN command failed >> 3- since we have transitioned the platform in INIT state hence we must >> call the shutdown otherwise we will leave the system in wrong state. The >> shutdown command will most probably succeed and we will look the ret value > Sure but what do you do if the main command, i.e., PEK_GEN succeeds but > the shutdown command fails? > > You probably should carve out the whole shutdown order in separate > functions. I mean, the sequences do repeat in a couple of functions so > you could do: > > ioctl: > > case : > > init_platform() > do_main_cmd() > shutdown_platform() > break; > > and this way you have everything nicely separated and retvals properly > tracked... > > Hmmm? Some commands are allowed in INIT and WORKING, some in UINIT only,  some WORKING, and others in all the state. We need to follow the platform state machine. I will see what I can do. thanks