Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752456AbdGaQcT (ORCPT ); Mon, 31 Jul 2017 12:32:19 -0400 Received: from ale.deltatee.com ([207.54.116.67]:56344 "EHLO ale.deltatee.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752301AbdGaQcR (ORCPT ); Mon, 31 Jul 2017 12:32:17 -0400 To: Andy Shevchenko Cc: "linux-kernel@vger.kernel.org" , Linux-Arch , linux-ntb@googlegroups.com, linux-crypto , Arnd Bergmann , Greg Kroah-Hartman , =?UTF-8?Q?Horia_Geant=c4=83?= , Stephen Bates , Benjamin Herrenschmidt , Paul Mackerras , Michael Ellerman , Suresh Warrier , Nicholas Piggin References: <20170726231917.6073-1-logang@deltatee.com> <20170726231917.6073-4-logang@deltatee.com> <5c52d908-3b77-c5c6-99a7-1164d878ac95@deltatee.com> From: Logan Gunthorpe Message-ID: <3a4c9453-20be-8164-85eb-5ad4d596a299@deltatee.com> Date: Mon, 31 Jul 2017 10:31:58 -0600 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.2.1 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 8bit X-SA-Exim-Connect-IP: 172.16.1.162 X-SA-Exim-Rcpt-To: npiggin@gmail.com, warrier@linux.vnet.ibm.com, mpe@ellerman.id.au, paulus@samba.org, benh@kernel.crashing.org, sbates@raithlin.com, horia.geanta@nxp.com, gregkh@linuxfoundation.org, arnd@arndb.de, linux-crypto@vger.kernel.org, linux-ntb@googlegroups.com, linux-arch@vger.kernel.org, linux-kernel@vger.kernel.org, andy.shevchenko@gmail.com X-SA-Exim-Mail-From: logang@deltatee.com Subject: Re: [PATCH v5 3/6] iomap: introduce io{read|write}64_{lo_hi|hi_lo} X-SA-Exim-Version: 4.2.1 (built Mon, 26 Dec 2011 16:24:06 +0000) X-SA-Exim-Scanned: Yes (on ale.deltatee.com) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 996 Lines: 31 On 31/07/17 10:10 AM, Andy Shevchenko wrote: > Some drivers (hardware) would like to have non-atomic MMIO accesses > when readq() defined Huh? But that's the whole point of the io64-nonatomic header. If a driver wants a specific non-atomic access they should just code two 32 bit accesses. > In case of readq() / writeq() it's defined by the order of inclusion: > > 1) > include <...non-atomic...> > include > > Always non-atomic will be used. I'm afraid you're wrong about this. The io-64-nonatomic-xx header includes linux/io.h. Thus the order of the includes doesn't matter and it will always auto switch. In any case, making an interface do different things depending on the order of include files is *completely* insane. > P.S. I have done a table of comparison between IO accessors in Linux > kernel and it looks hell out of being consistent. There are a few corner oddities but it's really not that bad. Most things are done for a reason if you dig into them. Logan