From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752781AbdC1OJe (ORCPT ); Tue, 28 Mar 2017 10:09:34 -0400 Received: from mail-sn1nam01on0067.outbound.protection.outlook.com ([104.47.32.67]:45188 "EHLO NAM01-SN1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1752244AbdC1OJb (ORCPT ); Tue, 28 Mar 2017 10:09:31 -0400 Authentication-Results: vger.kernel.org; dkim=none (message not signed) header.d=none;vger.kernel.org; dmarc=none action=none header.from=amd.com; Subject: Re: [PATCH 2/2] crypto: ccp - Mark driver as little-endian only To: Arnd Bergmann , "Lendacky, Thomas" , "Hook, Gary" , Herbert Xu , "David S. Miller" References: <20170328095814.3734615-1-arnd@arndb.de> <20170328095814.3734615-2-arnd@arndb.de> CC: "linux-crypto@vger.kernel.org" , "linux-kernel@vger.kernel.org" From: Gary R Hook Message-ID: Date: Tue, 28 Mar 2017 09:08:57 -0500 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.4.0 MIME-Version: 1.0 In-Reply-To: <20170328095814.3734615-2-arnd@arndb.de> Content-Type: text/plain; charset="windows-1252"; format=flowed Content-Transfer-Encoding: 7bit X-Originating-IP: [165.204.77.1] X-ClientProxiedBy: DM5PR20CA0031.namprd20.prod.outlook.com (10.171.161.145) To BY1PR12MB0471.namprd12.prod.outlook.com (10.162.147.148) X-MS-Office365-Filtering-Correlation-Id: c3941ee4-03a3-4d3b-8fa7-08d475e3fdc3 X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001)(48565401081)(201703131423061)(201703031133067);SRVR:BY1PR12MB0471; X-Microsoft-Exchange-Diagnostics: 1;BY1PR12MB0471;3:bOPS6scit69iL12nQgvNn97+e0+pg9OxQQLWCPEBbYbcoMHt6mPw1qpSfOT8uf3tM4XwR8mbAv9aI+mOH94CWJUu8BwGnyuh4iNAakgKlsC/M8g8dWCABToHaaAtRhXJE0g/+sfIGKlBh4en30KcJPvyX8HpCSW9La+C09BoSSKK+ppyA9GpGsY4uDO05uKVOGvFnj/s6cnIZtIdiHEd4PdoJvqadUrJf/qjd/hLdVJt8pqGdAz/w2mhIQYm8L4Be2EcZSXu/6vUrSHHVr5IgCJRr3MH6QM7PBhFoOpkra/QuKD5Bs1KTFIlBpgK0WpN4ajm9xCfVO6nKsqdyVamSEy280RF5okkhxpDddPfunw=;25:KCCMsmTB/POc6ZSv2i9AptjwY33dZUxaYittgFYxfPpv0VI8ILONlYyGykweZW4oztj4AYohfXY5M4RS5GX09ASSJgwNUF4fezGmdzRqRdSFm8A9MLv+S+ad7aProBLV8zOTL7EeJFACeGFWm4Nq6nZbjmCDclCOXJsQfejwK+8v6E+7/Z2G0kHi3CArGzka7sSjkj92z3RsGHLshH74HprPiRooEl5e334FCRaXF8Fx2l9sjeRNRK8RreaTPmBP+6m5jy6cpWYVfuv9OWgQ8S1lES+PNfNOj3xuNfj0ooyg8ozvI4lIwoMUyA8Uc9YyRy7aCAc4iH6HbCWvvtjYkXdGHoBHl9zCcJkbKfKZLnTmfIOSD254CZ10nJoh/fbP15XVmplkexHoMeof3xCl91d0GCRRyIiiBfzmBafmXIk4Y7h7WwDJKgjoDyIoFMwrNanyDk4bGySsTF4+EgKlFg== X-Microsoft-Exchange-Diagnostics: 1;BY1PR12MB0471;31:XvzIVKTUDVkHWbxjUXlZB35UAWuyIwkdhKOmLThfT9QMhD0yR+EkZYaiUnGyb4yatkzjoSORBrMx5L3nJyCmQu9evKtW6R0rfqAroTI2SGqrZXtNIt/gr1F7ozgRJ1sAOrl2JVgmOIKOhhGi5XvGJPoAjm5oHO2jQCRAFMbAawUOtTRQHdQb578KXiIyYNmMB0HZ2vlGH1o9qTrUgmMs92TCbwqPiPgCFFFCsqSw16alfx3SrANEStq/Hf2llVkD;20:KCchN6gOxrzGhHtycAMHCgg5OQNVL6/BRlS6ccGX9ga3wfTdq+fxu9I1PCi9djuDPylSzuYkl15R5VIGWae/fs3vD/S4/3PfCCpJt7vdOQfY4lHr0i/jo4UPnSotxOFMVujwGR01G71sMdkBlZh58TGNKeVlmGptgfi1WuxaR5FTe3E9+Nz9DnG4aY4haQzsqYjNA+4ZtKaY+HTxZGaa+gH69SnB23EeQVWkz2oInFrptIg+paY0FGEHFcaK0FPrg3E5+V+LHUXhxe9AzkDcdGn1mKs1Ya9geTaNDYfN15QOMsepmmEAwtllDvla9dE6L+nuNZ1Stm41/nCJ4ggHy6pLnlBXnqmmsSJcYQ94kB8DoMTFj5XOBkP7+Cl2XjY64vOzZ4H80TnqObKVH3Y/40OAflA4+8pk6sZJSQKMYNKl337kSmlzL3KGsHRAEXM9587DsiCcF6cTY4rCsso5y/4W/lGb9/ctTNwkYAwx1pyNvfcCfkGRwmTXkMFmpgaN X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(148322886591682)(131327999870524)(81227570615382); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040436)(601004)(2401047)(8121501046)(5005006)(10201501046)(3002001)(6055026)(6041248)(20161123558025)(20161123555025)(20161123564025)(20161123560025)(201703131423061)(201702281528061)(201703061421061)(201703061406061)(20161123562025)(6072148);SRVR:BY1PR12MB0471;BCL:0;PCL:0;RULEID:;SRVR:BY1PR12MB0471; X-Microsoft-Exchange-Diagnostics: 1;BY1PR12MB0471;4:Kmrd8YD//krvo6R5kD5vgO6KPsEOMIS5pFOBPuaNW45gJsNupSU0QwgiQMa+6ILxbpJo1pQL3ktEwlEceXAWyFq4WB9Rhi4mBvMnzjYFuUN4cq7Ciycje7ZdkB39wU6QfHAtWnFUawwdYUGRT6ggu2FIB7KpiN4swtAq7LiewIlzkNA8PK+amqDPrFQxZDvKorziIqTcRTNx4CL9WoKaomW39o0yB6Kr+7hWDw5kPsVpzRb6JVLTIgZNujrasa8KRcPG+9JiIrD/lSj+fBjalBM0KIpJqj/6YyVHrYB4bwzs/bzOiDNx1K9g3lpS1KqWgBDsPxoFfQl25JUsjl921LLAOZh/f1+9vNBZui+Jd+TCBwoaoAYWUuhENi86hOVZk5mnw8+7JGFx/Af/RXj1DEXxj6smq1SRA6uDAKg62TVJnp/Bs4PTmI1ziZc/Fz52ns04K5X/EgLDhJpImsC8yPl76TeJZPQ8wLPn7pk6LxEA0M99+MONKRwmqytIE9QYtfqJlwp4Rzshelqx59ZZkxn9sy4DjacL3SeF2FqeSGNsJ4/ioAebeTLEiQI44VP+iUJa0Eur4w646CNRHHJAmb5Z5NMHwWm9C7rSD4899yX5Cw6sf4/8pwJyJgVKJ/Im0MtyR7Nz+Ul5snsqkyaw9HEsuD3FvRcLuhh7Uw24NhmTjVF1uGWHQ1YdDwTETtjHwvzdhsk2jxGhSkKxcBTAOcO1d250UouyZx9m62SATmh9/iiPOJtyaOyr/dQioKvzVf49rk5DNpMIK8V5NjYF4ZGfFxEbRxqQDt7G9jd2xXWQeyAe7bQwqfebd1D9eB4pObkV/jbUbIhRk2x1U6ta7Dcq6gVRdy94Xc3U1noKwYgDhRtAKXzG7bI8kaRPgHSn X-Forefront-PRVS: 0260457E99 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(4630300001)(6049001)(6009001)(39840400002)(39860400002)(39450400003)(39400400002)(39410400002)(39850400002)(24454002)(377454003)(53474002)(3846002)(83506001)(31696002)(5660300001)(50466002)(90366009)(77096006)(305945005)(6486002)(7736002)(53936002)(6116002)(54906002)(64126003)(33646002)(189998001)(2906002)(4001350100001)(54356999)(66066001)(53546009)(76176999)(25786009)(4326008)(38730400002)(230700001)(42186005)(50986999)(6666003)(31686004)(2950100002)(47776003)(8676002)(65956001)(81166006)(65806001)(36756003)(23746002)(6246003)(229853002);DIR:OUT;SFP:1101;SCL:1;SRVR:BY1PR12MB0471;H:[10.236.19.127];FPR:;SPF:None;MLV:sfv;LANG:en; X-Microsoft-Exchange-Diagnostics: =?Windows-1252?Q?1;BY1PR12MB0471;23:xZkzKMyvkN/fFJ7ZgYifpo4kI89RxGY45pU4T?= =?Windows-1252?Q?IXVSlYNQiSZnLVADzQfW95u5g7M/i/qPrWOTmBlxbKxQy1YNzK43UAD6?= =?Windows-1252?Q?mKBhsimrSXufCPG/WMKIsqBMdVdepogL1ZD6Sry4YAmC1IGnWCG8htLD?= =?Windows-1252?Q?BLR56B11cm2LRnmGXPEUJcsmIV0r5aHoBGiJdmVFEb2iy/XnuRwCUiXo?= =?Windows-1252?Q?ioSoQ/oh83LFilHuzGKw5nSWXMoa02yC3V4CVCjO+eJYkoDvIH8QgkbM?= =?Windows-1252?Q?SEXD288i7e9NnaQQ8c89OGiE3IfOElHWi2HA0x5/QCb9Lfy/HLo24dfv?= =?Windows-1252?Q?sbwcGF+pljJY8bUQBplPwluTTGs4DQtNSR1x75+SBVLQjpB1uuQCgWa6?= =?Windows-1252?Q?bxrbAlKxfZtadMlzcGhl2XOdo8o1sUM1wnijpBxP0ZCINTdEGTK7g8MV?= =?Windows-1252?Q?GHf5S6AgVIkZ3G5TypMTNh7LrCtmSi73P0OliYQccBCVJBtUx7YiWH0l?= =?Windows-1252?Q?JQzwyhaZJNxwqiv+zhBey5FPDe3rpt4rQgTqjAb5b6xxWFyZowIuKSZA?= =?Windows-1252?Q?2TyGrqfnQkAcou5p4kF4UyVHffDKjg90SISK/dSys+pqrbYDrEN7+JRR?= =?Windows-1252?Q?0bQcLX9ir8a28sk6aOIgFVTd0VvTtM4uGRSF+61MNcvOWpAf+yrhmYM1?= =?Windows-1252?Q?C/RcNJJMgZtnT5mtW3CBEDwK3k9Iyd09EPnLABuZHKfVKyfmTMzh+NO3?= =?Windows-1252?Q?ULgV3CSDbxLPmg79efA8zLuMas99C+Cf3f39ecPhD6473ulY1yiM5KiR?= =?Windows-1252?Q?Ie89DUJZbyUkUimtibvV36V5hwf3Uj1H8Nq1ouPoiaGRcd35zDIHvjop?= =?Windows-1252?Q?chasIezYq8xInBfHJoj/UxQgd9u9YrIHuQburecNb/65hX61RRdTtCNG?= =?Windows-1252?Q?6rOg+Io1gLOW/+lRlk6zXw6dMgspSanxrccAvZ0wXIkMoq4AWypK4Fbz?= =?Windows-1252?Q?ibr7GZDeiOoXCIk5DvAwbxoQFcvhfyi8ycb694fLHumVr+KhiF14OAAm?= =?Windows-1252?Q?EyS1Kg4psyFf9JTFXg9hYnAEJd6pVor0aRauM6xEC3g158VX21BK0jFA?= =?Windows-1252?Q?ixmg78lYt61sPox4kK+xHe2jpV48HbiMTpdweM0rqDVMUSuP3kbREQLR?= =?Windows-1252?Q?oaCd54aqgD0OA/RApfd3ecBynUmluW5j9BV6lrzRIMnAIa7uIYTDyOjn?= =?Windows-1252?Q?X5m5MPKYLW7b/aX9lXia3cZiqhwJBLeq9dSMVCSLI6tqT73pxdZ+TTi7?= =?Windows-1252?Q?tCfDk+k29gafFX99TqCVcBzZKeye8nFsns1hHyz7yseoh0NLN0ZbmMUP?= =?Windows-1252?Q?VvilOPfrGu+aZ763667QuZe75TE73i4ew=3D=3D?= X-Microsoft-Exchange-Diagnostics: 1;BY1PR12MB0471;6:QiuvuT91w3R9eUpzTW4JTQ2nB7ghlifoYuqLsEvrfBG1SSCOHnZQaWv9yVLmB3/dU9yZ7e5/RXAJfsjX6gATUKi6l7GkANhzhhhfnulOGpd62Hn3NS9X+pcOMM3wV/XgBZVXOs6HK1yz9+aWrGKGtkXKnlFOyPcMrppbqaVfVJ1H4PB5A6Ws1MsV6Bsbz/hYuqPz86W2Bl99n/bMhllPW4h8o/gBThqlB14I6MEe0nebRTwCS8daj8982nnMPe9re8AnWvKnS5nxdIsZO5ZnA1EgcaRQ1Z1adH9Z54kISCGYQb6MCsPQ/Ve18fUNPHz8TMc88zXpVQLvjLBhLhwJBqsjwyRxcbT2BG+0pu9JhnkdvtUbJM0XJ1Tu9PGNIJqx6dEgDC7URsImEFsnLghI56zDIJ2hJVUcNLY6RPVPTQM=;5:hdAXvmVPl4s7PS+yARJfMM+6JyHpikubqyuCyFXXzvowqdA5xrVBHcAfRA7zOZxYEbjT9FImiuR1JFZffg4Ceutf5uKOiOucw8M+J3w8lE+8qWC7cXPyNIhL92ZiFuuru6FwjyACue4EUuq9fnMI/ZYYYoDj7Bf6RCasCWnlD/0=;24:EKpy+GqMQksJ0ol/b+AW/iNLgC46eogYRvPgIkb5M33EAyhN1XGMIhIsDf5nvW18kfyAzP5ywK9K3Vxf/WlENZTc528QSeKrWcFzQ7q1EfY= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;BY1PR12MB0471;7:UwztnG0s/vtl51+GxxCqf/zB2yCyoOMfeix178hmgrPNBwkAPMEBzvaYgaSNzy9CgiMLrkkP3rEw/ZQJK8ODBJkEfvlPxOz6Suu69ipvBy+KDsHEony7KTuh9bR+BvC2JDQojpSOBuGfWJWY6DfcqmIvukjYZvOrcUsuKFMurcB9rQysqwVEsMwejPzWxCisHJIiA/VuLey2KML852PRaWr0NgkowPl8vpkXz2ro1dFIb8az7pJCjFvEDpnxYoVibjkLHmYow+XRvqAk6NMh3qz6yEkxbh4bTODKp95O0TB/FipOW8aQhFlWbhwX7/HKSLEmOEiA0GvUK7oghtYZTg==;20:tNMbYs3N1k87yXWTPStx2e0aHfdA09gOT64snnOzy9wKCByVmd9iV1MD1nRZRjqZB2rniMXHofiZHXbH+FslggIwJLTPSfPdGjHVieRCPn5RWlCqZmrECQWs6HGQh9zFilULhWgLYnnNRJcMCF1vWOUY6Ebnx8AgGZwVj6hJp/rIxMUVnOFYE3OYnmLl/BfbfPc1b567jqVD/f1jY/M35KXsZW7DmQIR+aOURV6NM10O9CP9Y3X+hfwfz69/gCML X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Mar 2017 14:09:03.6066 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY1PR12MB0471 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Ack. Didn't reply all.... Sorry, Arnd. There was a krobot warning about this and I submitted a patch just now. (I thought) my mistake was (in this function) not handling the structure elements in the same manner as other functions. My patch rectifies that. On 03/28/2017 04:58 AM, Arnd Bergmann wrote: > The driver causes a warning when built as big-endian: > > drivers/crypto/ccp/ccp-dev-v5.c: In function 'ccp5_perform_des3': > include/uapi/linux/byteorder/big_endian.h:32:26: error: large integer > implicitly truncated to unsigned type [-Werror=overflow] > #define __cpu_to_le32(x) ((__force __le32)__swab32((x))) > ^ > include/linux/byteorder/generic.h:87:21: note: in expansion of macro > '__cpu_to_le32' > #define cpu_to_le32 __cpu_to_le32 > ^~~~~~~~~~~~~ > drivers/crypto/ccp/ccp-dev-v5.c:436:28: note: in expansion of macro > 'cpu_to_le32' > CCP5_CMD_KEY_MEM(&desc) = cpu_to_le32(CCP_MEMTYPE_SB); > > The warning is correct, doing a 32-bit byte swap on a value that gets > assigned into a bit field cannot work, since we would only write zeroes > in this case, regardless of the input. Yes, this was all wrong. > In fact, the use of bit fields in hardware defined data structures is > not portable to start with, so until all these bit fields get replaced > by something else, the driver cannot work on big-endian machines, and > I'm adding an annotation here to prevent it from being selected. This is a driver that talks to hardware, a device which, AFAIK, has no plan to be implemented in a big endian flavor. I clearly need to be more diligent in building with various checkers enabled. I'd prefer my fix over your suggested refusal to compile, if that's okay. > The CCPv3 code seems to not suffer from this problem, only v5 uses > bitfields. Yes, I took a different approach when I wrote the code. IMO (arguably) more readable. Same result: words full of hardware-dependent bit patterns. Please help me understand what I could do better. -- This is my day job. Follow me at: IG/Twitter/Facebook: @grhookphoto IG/Twitter/Facebook: @grhphotographer