From: Andy Shevchenko Subject: Re: [PATCH v5 3/6] iomap: introduce io{read|write}64_{lo_hi|hi_lo} Date: Mon, 31 Jul 2017 20:58:25 +0300 Message-ID: References: <20170726231917.6073-1-logang@deltatee.com> <20170726231917.6073-4-logang@deltatee.com> <5c52d908-3b77-c5c6-99a7-1164d878ac95@deltatee.com> <3a4c9453-20be-8164-85eb-5ad4d596a299@deltatee.com> Mime-Version: 1.0 Content-Type: text/plain; charset="UTF-8" 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 To: Logan Gunthorpe Return-path: In-Reply-To: <3a4c9453-20be-8164-85eb-5ad4d596a299@deltatee.com> Sender: linux-kernel-owner@vger.kernel.org List-Id: linux-crypto.vger.kernel.org On Mon, Jul 31, 2017 at 7:31 PM, Logan Gunthorpe wrote: > 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. You mean to call them directly as lo_hi_XXX() or hi_lo_XXX() ? Yes it would work. >> 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. Yes, you are right. I was thinking about something unrelated. -- With Best Regards, Andy Shevchenko