From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752013AbdJXSmC (ORCPT ); Tue, 24 Oct 2017 14:42:02 -0400 Received: from mail-by2nam03on0070.outbound.protection.outlook.com ([104.47.42.70]:53371 "EHLO NAM03-BY2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751495AbdJXSl5 (ORCPT ); Tue, 24 Oct 2017 14:41:57 -0400 Subject: Re: [Part2 PATCH v6 14/38] crypto: ccp: Implement SEV_FACTORY_RESET ioctl command To: Brijesh Singh , kvm@vger.kernel.org Cc: bp@alien8.de, Paolo Bonzini , =?UTF-8?B?UmFkaW0gS3LEjW3DocWZ?= , Borislav Petkov , Herbert Xu , Tom Lendacky , linux-crypto@vger.kernel.org, linux-kernel@vger.kernel.org References: <20171020023413.122280-1-brijesh.singh@amd.com> <20171020023413.122280-15-brijesh.singh@amd.com> From: Gary R Hook Message-ID: <753c954c-5daa-892f-df4c-155ef9518542@amd.com> Date: Tue, 24 Oct 2017 13:41:50 -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: <20171020023413.122280-15-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: BN6PR04CA0053.namprd04.prod.outlook.com (10.174.93.170) To MWHPR12MB1326.namprd12.prod.outlook.com (10.169.205.139) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 23f6dd28-0943-49f9-e37b-08d51b0ee67d X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001)(48565401081)(4534020)(4602075)(4627075)(201703031133081)(201702281549075)(2017052603231);SRVR:MWHPR12MB1326; X-Microsoft-Exchange-Diagnostics: 1;MWHPR12MB1326;3:0NKZfBzbvpAjqmWugijp1GiWiORh0xbVpoPYV5HR0wFwLman6Dc+/nK+9swtj5bAcgx/qu2PmFh8Yo1B+kvH4q08znCImyU/xbQGhta5D1ykPhZ00d/EWTQdFbFAxE9Pn/seiEItUfwC4btNao+QqBBiThwCBc/2jnarJSu4gS49mGhPL8Z49GVofJI9mRoxKOlr6RFHjlmXEUTP9Oh6dT6IK14Vc0eBN3G5YDkyDk/YeVArzHHorHPqK/qvPvOB;25:cEPlKDzeFghu6gfRZOpRGJw8pXazZPkJ8A38k32SLljI8SfXpcQ9f2VQ0xlQngL5iwNfZhtkUthtN4OD82RTIbQfFlgn/iR7Kkm0GYYoRVerw9xMpJY0UaPSwuIXa5R4anXr6djVrfIAc6jRtbzIb4A+0YgKFdRTvDH2cSFkFyWIa4gI1tDlyCPm+TZI6MXOokPCrWEYHTc/O6NMJGS3N4D9vqToh81d8wSVMjQHt+X4N1q5+P7fnobVTqFglMh7zn+d236/QQJTpK0rA15fdoney3+WjF9CQ4TiDb+LweH9GugZPoKIwZVjng/ua4E0m+TVHSK0AT2xVngAeOpQuQ==;31:4znxBZ5/MadlRD2MrZAg/301Semsm/2d98nyLr0AcMmsNsV5wtMkfhuzNe6bdxKXX7n8Hmt6qrTG2UHhJDrWLDhs9Oo7mlc9B6pWfm13tjElsCMSwSK7Ag245RqOUjTXEyH2BC1yK9bcD5yCzQg9AWhViPIkY+J8zFCUOknUESp/iaQI/t7Xk/+xghHlx81hqnpbXU4dcetoni1vzqPcwGNmQhehcTHMNeL1dH+SkmI= X-MS-TrafficTypeDiagnostic: MWHPR12MB1326: Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Gary.Hook@amd.com; X-Microsoft-Exchange-Diagnostics: 1;MWHPR12MB1326;20:4IZrcOiNnntuPWPF7b84JfJP7CKy2wRyOSjPxPvyDm3JcAepHQZK1uJPvWOT0YEOm5YR6xMYkYniCqB6MFPoujAgPVInFlXhfKTP4WTLF7Gjb6iECjgGzDQzM29MBuzpwg/fxbyGEGXrzFsOZnaUA5V4v5PZWf/kv8JJFs3WCtgsGziuOQBZ+UoJHzJq3oK/Q8DOEIERFO2dD5iJSZB4+NA1lfK/rll5po9pXHsNmQ3OyCMQecWNyAfbIrmZ16NQYQO8f4XfTe/09J6va6VV6XfUYLRLpQzKRdA1twDldzGife1wh5RyszFw7pc2wOtTlbL9tTRxiqXZ6YvVwu5dh+mHjlA9m2wWimZwC6xi1BOBZ4JgVYE+trovyq/+CnV1kODn2benAHihP1fIct/K0yt5s6c2CGBG/3u2hqEOgt3FpqgRREo9+UJfATVeijYG8wdqrzcHtaYKA4VVvProzl1GsrktLrcLs+kW2ZeWwcm384Hth3h2V8Jh+oTBek+n;4:ZmPE5//kpmcUWQgvGe02EpCJG6XY7X69YlXFcljM5grCaQB/usTMzQp0hiHNjt0aY++t/gMMPBVBCA9ynDMq6MgaQfaniSUbJfjlobtXLcpbH+O+IGVBV4MLs32S5BkZNLqyiE3eR2avJA4NwbBnfH3Sx32qYM6vZK7Nwd+6/MxNE3ZiunKVY3lcTzXF8C40EbOUuMIdHuG1iJlaEXajRNuXNjA3fsnIQR02QpgbO6j95HkA87IG3e8m2Kcz/sLZZlEQt/lZv6M6zoffbXQDrAjpk2waNk/UajFnkAwfMIdz5/vyPdojSw37qE9CsWunqRI/xBNbny1YecOrQ8OmUA== 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)(5005006)(8121501046)(10201501046)(100000703101)(100105400095)(3231020)(3002001)(93006095)(93001095)(6055026)(6041248)(20161123562025)(20161123558100)(20161123560025)(20161123564025)(20161123555025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095);SRVR:MWHPR12MB1326;BCL:0;PCL:0;RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095);SRVR:MWHPR12MB1326; X-Forefront-PRVS: 047001DADA X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(6009001)(6049001)(39860400002)(376002)(346002)(189002)(24454002)(199003)(33646002)(81156014)(81166006)(5660300001)(8676002)(2950100002)(316002)(2870700001)(6116002)(54906003)(16526018)(64126003)(58126008)(36756003)(106356001)(54356999)(83506002)(16576012)(105586002)(478600001)(4326008)(31686004)(72206003)(101416001)(8936002)(76176999)(50986999)(189998001)(50466002)(23676002)(66066001)(7736002)(65826007)(6246003)(53546010)(53936002)(25786009)(86362001)(6486002)(305945005)(90366009)(77096006)(2906002)(65806001)(229853002)(65956001)(68736007)(47776003)(31696002)(3846002)(97736004);DIR:OUT;SFP:1101;SCL:1;SRVR:MWHPR12MB1326;H:[10.236.19.127];FPR:;SPF:None;PTR:InfoNoRecords;MX:1;A:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtNV0hQUjEyTUIxMzI2OzIzOkVVbVEvZzQ2djRhUEZ0RVNlZnpJZzRGL1dp?= =?utf-8?B?OElIWEdINW5aSi8xckY1dTZEZUgwQkFjS3NHcFdrN0JrQUY3RlJQNkUveVBt?= =?utf-8?B?R1dsWXA1VzlQbmVnNjJIdjZJRkZ5TU1GTEMwUDJDTUtkYmw5c2RYRUtjUWU5?= =?utf-8?B?YVVwNFBsL214RHRrd0RkbTNzMExyZWlob2JoblE2Rms0TjB1SkFVdDlVbGg5?= =?utf-8?B?bDB5c0doaGF0NjZ6K0xGbmZsVkxYYUVCTld4Z2ZIMGxGUlNTOE5YSUhXdWlQ?= =?utf-8?B?UUFXUDB2UWozdlpYdS9vRE1yZzBEcjBNMk5VNHVBWVNOOU9CRXg4OHJpa0Vp?= =?utf-8?B?bWw3R3FtNXJzaHpqaS9FVytRWWVuMkFrOFl5cXF5bXlzdVprRU9kN0RpdWVy?= =?utf-8?B?MkxDMGJER2FmVHNEQStabTdqVFVqZDVsNVVjUjU5OEpIN0lZdG14NGM0NWxt?= =?utf-8?B?Ym1FdjdDQlpodGpoREpzK0JGVzFIUEhjTlFzQm5KdmlFSTQ3Qk04T2RnYzlx?= =?utf-8?B?T3FmZ3Jtc00rVWVEbjB5bUhDV3R5UW51ZTFpcWNKRTNsYTRoRFlaYjhyWE8v?= =?utf-8?B?blFjd0Q5ZHNHRVZyTG5qcEdLdE93eFU1am1UQ2tKYVNUem14b2x1WDZtTE9t?= =?utf-8?B?SmRvUCtYNkozNGFnSW9STjdDQzMzY0hKRXZoTy9XaGc4RDVIeHFwT29RSVYx?= =?utf-8?B?L3dIaFNDYjdJZGxLQ285REVYcXJJVHR0djBwekFWOVFlWWx3Y0k1Q0NmQlkx?= =?utf-8?B?VmZkV2V5Mzh6bEozYTBaZkxaanhiaGNLSms4RTJRZFlNcC9jSlJEb3pRSVVI?= =?utf-8?B?ZUtOVlgwcHVleFRvVS8wMnpLOUNONE5jR1B6S25XaDBoaURuWlhoRWM2UDZZ?= =?utf-8?B?dkZVSndYRTlGWkNHMzNIV3ZmSFFPV25ZZlJIelR6RjhYU0xtM2xmWC9kN01q?= =?utf-8?B?cEdZbE5KQ05jcE9sNWRwL3NGZHhDVmovUzZuVFRSTzhaazRLR3J1NTdON0p2?= =?utf-8?B?WmV5TGRaY045ZTNwL3FJTm9KT0ZNK1ROZXBhcUkrbzhNam9RdFQ1UG5ZQWNG?= =?utf-8?B?NjA5NTFIekQrRWdScGtYWFdObE9INkNiNy9DbWxKQWJxbWdpbE5pRmcrV21n?= =?utf-8?B?K21SQm1WS2Q2aFhrS2pJSGJ0TVFyZzhSQnhqNFVOZUpjcnZuRVhnNUFYVUta?= =?utf-8?B?WGpJdklVaUVXWXlLZEJYbXd6OG9rRkErZUhDNlNPVGZCMXVaTCtzeU9KVEdr?= =?utf-8?B?M1hmNWNRMVE3enBqaXloc0M5V2Y1dlV2MnVPT2lYNVhhN3V4TFR1cFM3UGRi?= =?utf-8?B?VlltMVlCQU1kRkVNbmJxbTZVZDA0OHFpSitRNXl3RlpWdWlzTW5mUG5Wa3NZ?= =?utf-8?B?YnFVUlBmNWNkR3g4dmlFZDlNQU1tTnBCY0RLNnRnZ01nL2tKL21LZnBPbHk3?= =?utf-8?B?NS9XcFYwZHFKZ1laU0JLa1lyL2J4TkpRek1GQ0ozN1dzbjBGOTNsQ0tHaS8y?= =?utf-8?B?YVBWYzBJeHNwM0EvOEZTSjNOTmQ3bmt2UFEremx1dGx1V2RTNnI2b0prL3kv?= =?utf-8?B?c3REMkgzWlRCNlJvUW5wWmI5WUtuTUt6eGtvWUVqUTU3Z294M1hsenhoeUZU?= =?utf-8?B?aE1aS2YreVZtQk9GUHJVWVJ1cmplanpKNmt2YndjeWI3c1VnNkY4bjFCVnRV?= =?utf-8?B?VDU1aUZ0QUhpeEk1cnYyVkVud3NaZEcrcUIzNVU3RCtMMnJtVWl0ZDQxcEQw?= =?utf-8?B?bnJYRnhuQVM2cDdJakpTZTllRFhrM1hjdHVEaCt3L2IrTWxzeWtBYUEraU9l?= =?utf-8?B?SVRjT3JReFVvbHplYW5lY1ZCQUE0K09JTitoMjA1d0I2MU40OC9lcTlQb2I3?= =?utf-8?Q?FEfpp9E+Igk=3D?= X-Microsoft-Exchange-Diagnostics: 1;MWHPR12MB1326;6:pHf9MawtqJg10xNkBI3lzW40C1miFJmbdaqUJJIGOWJ8l8O6BosPojj33iH3ThBzyWpQr+Gfga5w5dpoXi/5ipJGEeg/k/J+ki1EGgty9vm1dmChte19U7DcK7KiPMJ4X8hCqmw1VWeSc3La/uilk9/Acnr47UzMZfJdkHd2Dd6YwuauCPrmvqQQQGnA5AQcTsDDPH2TkZrf8OImg9zDSZbT5eBu1pzl/+GJsTLMdcW9897hkTBVALBsPqdgSBGZZFOPtlIca3xPAM/wuaze9o1kHrxHbuiz6QK4fBZLEtcDDz2lVJsVIHuzPL1nQ3OKjEFfLo6iaUocgADYRioTPQ==;5:4b+m/gpMeCQmZEmDPdUEVFLrufbMNLIC8XE1ih/CiCNoWdlGlLcSU50JTS4FezogiASh8res46pUwjM0OgXi47TQ91U6URl5W26SNOFgD10FWA9+DfToz/eXnjcF3hWHTtEDVIGTBF3STrE+ClTyDA==;24:US2oPC6B4YtTaO5nFGA7ne2/LZfnecn3f8WDa1kOsnWIsodYhNkY0npllf+w/omXaUXMQsUPCIjfTTvYE+U0b1JbNlNtYUy7jk3h2ukS1ZI=;7:l25o6elpHtcjNl2pQ5Bgga7bhGhYsk/YO9xzvp5jMyWYQLcZ1YgoWEsaH9weHgKv0V6+N0HMhvAjQqNbv8qBnvsrKuNWQAhf8/ROdK2cNWHSkEmwjjlEKn0Tof6Sdq/7I3iajSL3O1HR9W3nWKHlbnNLcsA5vCZkI/vYrFMGdmJ+Q0Ljn1ktUHWoq6ZsVY2q3TPHwp4kcAj+2VlPH981fk7iLuBPOMZBVqO2APAfFJ8= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;MWHPR12MB1326;20:z73UxpOLtH597bWpMLaxISlViwf0VRgMdmo53E8D3AAqwECg3a3k8I0Bz2FyttMNozxgc7/oHS/chRHh/JxflaQlPwGlV+kPZqZZH0KULpskhx/j52Ole22nNo+WONl1LenBy3WSzMOpMXs3/ymUDY7azJ40NmTxOXn8FGaYd80HgzgAFZnvQzc//TPYlLTfEqPNF5zjQz6uOzKHnR5OyjMFeZ1n0sv2S1zwk4QlrYX9Cdm8/l5VaO2vlEDWFR4/ X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Oct 2017 18:41:53.8138 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 23f6dd28-0943-49f9-e37b-08d51b0ee67d X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR12MB1326 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 10/19/2017 09:33 PM, Brijesh Singh wrote: > The SEV_FACTORY_RESET command can be used by the platform owner to > reset the non-volatile SEV related data. The command is defined in > SEV spec section 5.4 > > 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 Acked-by: Gary R Hook > --- > drivers/crypto/ccp/psp-dev.c | 28 +++++++++++++++++++++++++++- > 1 file changed, 27 insertions(+), 1 deletion(-) > > diff --git a/drivers/crypto/ccp/psp-dev.c b/drivers/crypto/ccp/psp-dev.c > index e9966d5fc6c4..99f3761206da 100644 > --- a/drivers/crypto/ccp/psp-dev.c > +++ b/drivers/crypto/ccp/psp-dev.c > @@ -176,7 +176,33 @@ static int sev_do_cmd(int cmd, void *data, int *psp_ret) > > static long sev_ioctl(struct file *file, unsigned int ioctl, unsigned long arg) > { > - return -ENOTTY; > + void __user *argp = (void __user *)arg; > + struct sev_issue_cmd input; > + int ret = -EFAULT; > + > + if (ioctl != SEV_ISSUE_CMD) > + return -EINVAL; > + > + if (copy_from_user(&input, argp, sizeof(struct sev_issue_cmd))) > + return -EFAULT; > + > + if (input.cmd > SEV_MAX) > + return -EINVAL; > + > + switch (input.cmd) { > + > + case SEV_FACTORY_RESET: > + ret = sev_do_cmd(SEV_CMD_FACTORY_RESET, 0, &input.error); > + break; > + default: > + ret = -EINVAL; > + goto out; > + } > + > + if (copy_to_user(argp, &input, sizeof(struct sev_issue_cmd))) > + ret = -EFAULT; > +out: > + return ret; > } > > static const struct file_operations sev_fops = { >