From patchwork Thu May 19 15:10:43 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Horia Geanta X-Patchwork-Id: 9127761 X-Patchwork-Delegate: herbert@gondor.apana.org.au Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id 5ADA760213 for ; Thu, 19 May 2016 15:11:25 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 4E538281BC for ; Thu, 19 May 2016 15:11:25 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 42EA5281CF; Thu, 19 May 2016 15:11:25 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.9 required=2.0 tests=BAYES_00,RCVD_IN_DNSWL_HI autolearn=unavailable version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 3C10E281BC for ; Thu, 19 May 2016 15:11:23 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754667AbcESPLG (ORCPT ); Thu, 19 May 2016 11:11:06 -0400 Received: from mail-bn1bbn0100.outbound.protection.outlook.com ([157.56.111.100]:6901 "EHLO na01-bn1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1754593AbcESPLA (ORCPT ); Thu, 19 May 2016 11:11:00 -0400 Received: from CH1PR03CA007.namprd03.prod.outlook.com (10.255.156.152) by BY2PR03MB474.namprd03.prod.outlook.com (10.141.141.149) with Microsoft SMTP Server (TLS) id 15.1.492.11; Thu, 19 May 2016 15:10:56 +0000 Received: from BN1BFFO11FD054.protection.gbl (10.255.156.132) by CH1PR03CA007.outlook.office365.com (10.255.156.152) with Microsoft SMTP Server (TLS) id 15.1.466.19 via Frontend Transport; Thu, 19 May 2016 15:10:55 +0000 Authentication-Results: spf=fail (sender IP is 192.88.158.2) smtp.mailfrom=nxp.com; vger.kernel.org; dkim=none (message not signed) header.d=none; vger.kernel.org; dmarc=none action=none header.from=nxp.com; Received-SPF: Fail (protection.outlook.com: domain of nxp.com does not designate 192.88.158.2 as permitted sender) receiver=protection.outlook.com; client-ip=192.88.158.2; helo=az84smr01.freescale.net; Received: from az84smr01.freescale.net (192.88.158.2) by BN1BFFO11FD054.mail.protection.outlook.com (10.58.145.9) with Microsoft SMTP Server (TLS) id 15.1.497.8 via Frontend Transport; Thu, 19 May 2016 15:10:55 +0000 Received: from enigma.ea.freescale.net (enigma.ea.freescale.net [10.171.77.120]) by az84smr01.freescale.net (8.14.3/8.14.0) with ESMTP id u4JFAqeK006851; Thu, 19 May 2016 08:10:53 -0700 From: =?UTF-8?q?Horia=20Geant=C4=83?= To: Herbert Xu CC: , "David S. Miller" , Arnd Bergmann , , Subject: [PATCH v3 1/8] asm-generic/io.h: allow barriers in io{read, write}{16, 32}be Date: Thu, 19 May 2016 18:10:43 +0300 Message-ID: <1463670643-2527-1-git-send-email-horia.geanta@nxp.com> X-Mailer: git-send-email 2.4.4 In-Reply-To: <1463670405-1059-1-git-send-email-horia.geanta@nxp.com> References: <1463670405-1059-1-git-send-email-horia.geanta@nxp.com> MIME-Version: 1.0 X-EOPAttributedMessage: 0 X-Matching-Connectors: 131081442554694285; (91ab9b29-cfa4-454e-5278-08d120cd25b8); () X-Forefront-Antispam-Report: CIP:192.88.158.2; IPV:NLI; CTRY:US; EFV:NLI; SFV:NSPM; SFS:(10009020)(6009001)(2980300002)(1110001)(1109001)(339900001)(189002)(199003)(9170700003)(5008740100001)(19580395003)(19580405001)(2870700001)(33646002)(8936002)(189998001)(47776003)(105606002)(5820100001)(50986999)(92566002)(86362001)(23676002)(4326007)(2906002)(8676002)(104016004)(586003)(50226002)(6806005)(85426001)(50466002)(81166006)(87936001)(2950100001)(106466001)(77096005)(76176999)(11100500001)(229853001)(1220700001)(110136002)(36756003)(142933001); DIR:OUT; SFP:1101; SCL:1; SRVR:BY2PR03MB474; H:az84smr01.freescale.net; FPR:; SPF:Fail; MLV:sfv; MX:1; A:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; BN1BFFO11FD054; 1:7yjCScCSfXnPN4PAr1W6r2NFUGTRbOmwGMr1KvXlr9YC3BWYEUlPqOTm+NdxpeXJJa6YtYehi5VYjEgBtLPJyWvXuxf1UwNdqfj02zcbtnZtVcMtbnESFTnYJSTOIUtr5VJEeIBtGVXRy7en7TSo00Ku5E3Z0Q7zfiNXbBRIBWMCq9BmUzGknvZDsOXBWOO14zLvgoUvD4PLqJeayoUi22MX7Db//8/AHVhgKtX/NbcUOwDzbdFXdIw4MugT3+cmnu5PL57dyFpqCGSvmmj6JJmxGanrYbVjl+0CcnHHjJp+Zb5kIX3hA9jfnJIXhoDU4Vqy1FVkRjLU+IEg+s9xJeYov0Ia3tyIFoU2tK12Whqqs3BqG/xEvWVj6N0G7gRTTIkctvArG0BouIN8l09jCmeaFLjN2J9SfKdzgmWq2Tz5PJS+x8DY+MEeUOAe23zYX5neJa8dVMKNvHJo7lRZd17Q6y1D7XIaYb+72c6K32Y9sY8FVU6qqaCNZC78uO7Hn2sKCba317ICYr4dO3EKvl6UjZGFLPR1bF9F5SYR3FgUYaviOIzb6CoXq/to0ik4 X-MS-Office365-Filtering-Correlation-Id: 2d2c78c9-395e-4b52-e930-08d37ff7c692 X-Microsoft-Exchange-Diagnostics: 1; BY2PR03MB474; 2:nWniOK3bfJdNeG3Axz+FI/ou/tkuhKcQENIz6G3mCOf+3drXlAU02v//FNXAPMqSzVXTont5qJAbITP5u99D49Yd4LpBAoU9Vbxs3t4MJ5iIENz4BKOPi25e7gxCXncv5eDFd5gKgq708cPfE404Mru1CLRF5zCmYzO1fugf3bV5nSB7r2BPYkC2OY/NpApr; 3:aJoHFTmRatqYqs0bQ2f1T7s5svRVbsJkfYCPHLl/RrzWbM4C1DVhrRnmyQhLXDH5t70WEnpu8e22WlqBUuwwXoYyy5X1UZya0ySdeZxQ8ncNwBDinH02MP34xlkE6PckrVI4X1fPwu3vBktxwjQzQZjCJHTlR9t6pr7yKkeeP5kvhys064T15L4tpaXD5ag7YFihc6shyewrcEiCVNL1YWlkWzXOOerjg1cs7lqBttE=; 25:+GH3atXh7d2kvfVuAXWNbm/anGg6HPCU9/kj3Nl0WSl5WvUoxgWuVWNNPMaQdVEHtngnMkJNJKTcTZCTHEP/cgSYLlY8jOo1gUFwSAMDUNBytqTIMJL/G8HR1VZa0vpHow3+oQxJ051zmRo9/phNCf6VcxtpLwWLwy0laRe/InaXvdZyx8NpeLg0oIwg8aJ5fRZUcjkjsRa0yveRSlU2sJFxJEQL87ISkqMISMR4YqCQAec+gPDv21H1zux62ZNcfZBeXqIEYq3QAbY94BOC4tXMJ6IluhlMYK9sOiGwctF1L8sWY5ohI42H7szrfaHe7Lho1K8vu88wNSVujn8P0HtRBd8Bo4iKrC5Cm7dnGzdkhz4Vz2Bs/N6MxwZlPaqb1FgTdOX62bEg2fyNn2zQy7Mtkzra2wz7k+VN5d5wxuQ= X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BY2PR03MB474; X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(601004)(2401047)(8121501046)(13018025)(5005006)(13015025)(13024025)(13017025)(13023025)(3002001)(10201501046)(6055026); SRVR:BY2PR03MB474; BCL:0; PCL:0; RULEID:(400006); SRVR:BY2PR03MB474; X-Microsoft-Exchange-Diagnostics: 1; BY2PR03MB474; 4:6J0t4OuzTDTSMWKt0mZOq/7X4keK23LLWSP/1bdQbVzqLygULwiYv3LZOSI6CkvS33nk7u9gASpjWFymfTePR2c9zv1kwseyDeyUNZh/ELfIF1C0JuLlv2iss3rU1pXUTzH802vZ6ytDmIDKxUL0GfLgCXpR6CqgZ59KIfNQVTew0REamqoWytbCjiFBnDuTZCWBWX9E3+OlvPIzExJJ1Bohx0aJySHa3Kyu/GnG/sHmZFAapCqzlfGhsbo7RMVW31gX0FNqDq5uHqsTYCXYlKsz8VodUZyitwaFdBEATEf7ll6Gkh9CfYaHfvpzQncV6EntR3/n69KHuT9KlcJG1nSMW7OLWpP7nNazi7j84DwLFPYZvTCP8ySDSEsWBpJ88Bkp5vu7fUKnDUQ6aZV56JUPJru0luBpmv4HyeKhIRH6Io7RUX4UZ2YCNh/+y+CiuE6R4LfQRiNZJW4YnTxszAxIOX84msOH/FdTaDKutTI= X-Forefront-PRVS: 094700CA91 X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtCWTJQUjAzTUI0NzQ7MjM6N3RzaFBvU3lGSjJUQjNLSkp0L053cCs1SStE?= =?utf-8?B?N2pHSGpJcEhIQnk4S0o0V21KVUJoUGlTSGJCOXZXQ091bXh3bFY1b0lZRENI?= =?utf-8?B?VE85Q25CWEUwUHFHaFoxTm9zSVFnTFovdHI3eUkyc2dWZDlFWjhLNlU4VW14?= =?utf-8?B?TU5BSTNtWmhaUCtzZDhGWW9sTCtVamhTRWdTRVAwNW9MamVxWXFSL3JGVkkv?= =?utf-8?B?aEQzSlNUMFgwV2lvTjBBU2F6TkJnaTlPQ0NiRGpSWTVONVdLZ1R4TGpML2ho?= =?utf-8?B?VmhnRFBTa1FaYVZnN0dxOFNHWUFaUGxFUGlFUnNhbFdFWi8zRnEvMFZzczJO?= =?utf-8?B?a1B1Z212WkVNR3BCUXdPelNpY2o3UGJXUk9PMmZ3dEtGdFFqZDlkdk5WSnNW?= =?utf-8?B?UjlxdTU1TytGS0FhZ1hlakkxUGdrV01oejlLSXFHQmRCY1BnZ21GaFd3VE1S?= =?utf-8?B?eThnUFlQRTVOcXlKUlV5R1Y5eW5UTnM3eU1jcTRUbDI2czZNbFRrckF2dzN1?= =?utf-8?B?MmlmWGhIWWU2V0VSN3dacHBEdXROdEV0TnJTeVRjK1MzUkVrSkFzMTBFcUNq?= =?utf-8?B?K1o2ZWVYZTliZzU3OVV5bk9Oem5CY0FXcEE0bG43QWxJbFhLZUFQMlg0dDVx?= =?utf-8?B?cmlyVy8zYjNjQVd1N0V6ZjFpYTVYaFRBVTVwcGVmcW5BSnB4b1pob2tTOS9Z?= =?utf-8?B?NTBSbDh5OGtJc2pSZ2dDc2dnMG83WXpFcDVXSEFNOHZYbnNNWTNJTFBTb0M0?= =?utf-8?B?Z2gxczRGYTZvVVJ4QkNrUjFBaTdWdk1iNW1VR0JzL3Y5b1JYeTFXdFZlaXlU?= =?utf-8?B?SlBhWUFYNTAvcHZWeXArNWJlb0tjM0VpVVpLRlI5alBXZk02UGtLaGR3cFhR?= =?utf-8?B?OTl1NzdlNXQ0aEVSWlBJa0lITHUvVmVGZTNaaXBEanZ1UUpxVjRiUGRoQnNw?= =?utf-8?B?amVpdHNrZ1NQY3pEVTh6eEJsSzlTZ3dFbU5GMHdIeGVtb2RZSmQ0M3k3bTVr?= =?utf-8?B?aGF0Rmk3a2tCUFRETnF0QlNYVTIwUEpQT3czY2Z4R1c2Yk9RU1U0d1VuVWRv?= =?utf-8?B?d1Y4VHN0MUZ3ZnF5TmFuYnBwT0liK01WT3l6RW5JVVVMTUY1OHJDaWcvVXUz?= =?utf-8?B?Wk5rOGVlZkVZR2NsTGV6MGJCVWhJeTBOUmdoVlhBWktjM1UxbHdHRUxWUnoy?= =?utf-8?B?bEpSeXJsTFBLWmF0SXBpQUd3UXNNbTI4UzZTVFROd3pBUzVvdVNyVFpuWjFm?= =?utf-8?B?N2lwaWFUWmF2RS9iU3d3SUNPZUlLTnB4NWJkRmpySFd5eTN3YlVQYkVOMEhT?= =?utf-8?B?YUVidXVUTkZOVDBIRXFEU1R1ZG8wUW8reHBuR2xESzh3eTRxSHczU1o4N1Vx?= =?utf-8?B?ODN4TlFMU2o3MVljaUIvaStIVHNtc0JmZ2hHZ0NDbzQvUXp2MVEvazgycG9h?= =?utf-8?B?L1AxY2NYOGwzaG5DNXhGVWtaT1hYMGRXSW8reDExdTVtQXlNR3UzelVtV1pE?= =?utf-8?Q?Z09GGuWSWdFNLn+JwqbWMwRg=3D?= X-Microsoft-Exchange-Diagnostics: 1; BY2PR03MB474; 5:WejhkNYea+jm0KxFVc1cZSnoE01KQhr4YPGIEGH2+U23Wc2vauKEMSmI2p8q6c/GJuA5M2MbZOJPlKNVjR5yoOvtQNBhTbl8kK24Q0i4vF5gAVNIN/s2/i3Mr3epc63Of0Q0PYQFxOpKv61H3dNLP2TkyM0MlJ1TweeDU2etgTg=; 24:woEPGb74yOqtFz0rWVVPdG5OR7uhcqWsyhGSyUzpVkkYGj7r/CkKYyKKlAmzlPL74lPf3Fi2uW0pUJ7hCKS/QcQTk6km4VH4CPD/vB7FsVQ=; 7:DiHh5iJ8qqr7E3ygMnbhJU9I+SZwDi9FpqzRhi9MsqWqANuxlsCnF7TpYu8+HAqqGr4gUryY+5Gs87xeeMA+Zk+TiqOuSqngY8hNr5k8TlbCASPEUcO5AUGa39rXVx0905d+EtlcBPb62kUmmoxZN2sCIZESvx4qMsV9P7ij6A4wXdKpLSMhmIm60vyXNXun SpamDiagnosticOutput: 1:23 SpamDiagnosticMetadata: NSPM X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 May 2016 15:10:55.2354 (UTC) X-MS-Exchange-CrossTenant-Id: 5afe0b00-7697-4969-b663-5eab37d5f47e X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=5afe0b00-7697-4969-b663-5eab37d5f47e; Ip=[192.88.158.2]; Helo=[az84smr01.freescale.net] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY2PR03MB474 Sender: linux-crypto-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-crypto@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP While reviewing the addition of io{read,write}64be accessors, Arnd -finds a potential problem: "If an architecture overrides readq/writeq to have barriers but does not override ioread64be/iowrite64be, this will lack the barriers and behave differently from the little-endian version. I think the only affected architecture is ARC, since ARM and ARM64 both override the big-endian accessors to have the correct barriers, and all others don't use barriers at all." -suggests a fix for the same problem in existing code (16/32-bit accessors); the fix leads "to a double-swap on architectures that don't override the io{read,write}{16,32}be accessors, but it will work correctly on all architectures without them having to override these accessors." Suggested-by: Arnd Bergmann Acked-by: Arnd Bergmann Signed-off-by: Horia Geantă --- include/asm-generic/io.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/include/asm-generic/io.h b/include/asm-generic/io.h index eed3bbe88c8a..b79fb2c248a1 100644 --- a/include/asm-generic/io.h +++ b/include/asm-generic/io.h @@ -613,7 +613,7 @@ static inline void iowrite32(u32 value, volatile void __iomem *addr) #define ioread16be ioread16be static inline u16 ioread16be(const volatile void __iomem *addr) { - return __be16_to_cpu(__raw_readw(addr)); + return swab16(readw(addr)); } #endif @@ -621,7 +621,7 @@ static inline u16 ioread16be(const volatile void __iomem *addr) #define ioread32be ioread32be static inline u32 ioread32be(const volatile void __iomem *addr) { - return __be32_to_cpu(__raw_readl(addr)); + return swab32(readl(addr)); } #endif @@ -629,7 +629,7 @@ static inline u32 ioread32be(const volatile void __iomem *addr) #define iowrite16be iowrite16be static inline void iowrite16be(u16 value, void volatile __iomem *addr) { - __raw_writew(__cpu_to_be16(value), addr); + writew(swab16(value), addr); } #endif @@ -637,7 +637,7 @@ static inline void iowrite16be(u16 value, void volatile __iomem *addr) #define iowrite32be iowrite32be static inline void iowrite32be(u32 value, volatile void __iomem *addr) { - __raw_writel(__cpu_to_be32(value), addr); + writel(swab32(value), addr); } #endif