Received: by 2002:a25:c205:0:0:0:0:0 with SMTP id s5csp6936285ybf; Fri, 6 Mar 2020 07:19:03 -0800 (PST) X-Google-Smtp-Source: ADFU+vvTGQFG/0k7QkAyQKZ3J53a/exwkvhwow6GeWIO7FEDPTb4fItIrUhXfXvujQI8zOa7Ftpv X-Received: by 2002:a9d:6e85:: with SMTP id a5mr2819460otr.89.1583507943226; Fri, 06 Mar 2020 07:19:03 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1583507943; cv=none; d=google.com; s=arc-20160816; b=cuF4kVp2vR399B0kaG8WyOAOJKsrhBhCX/PH1jzdJPy4BIzsqJD9GBw+r5n9m50ap1 W7dzqq4WBJi7brDxIMVIpaCO4sPypOlOaHyg/IWjPBkGjma1vZTV7EaevEh3H4xfc4GK bRZtZf2LKMXP4ooGSo7CpbGuQmYzCJ2xmK0yzr0nsy6WvnkJL4CNhuUhPilaZADRE6Hw CFZMi0i4RbKwyai3+2isElHn3wZBY1LnpZeB9N8zybl7TbuHlZadUwsuoB5ZZhQrcQ2A MjctTPcMgMUk8PWzPOxCXTWDZvGoykNZ0N6btCdJeem9SbaGh5usbScOUkhEyNDmUt7T 1wJQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version; bh=s4qQL4HcXoLw9jhYqrM8AYKymWSjOHE4FzqIWynQY3M=; b=aSfR7IHfb9FSHQzy6jASvTwhPzzSCLgJWZqaq2FOmO0YQrcLCSzhAGKkxLHiVzlIqW d14mk4mdul+liMTnqGNOoXpFIuKoba4EKfpH+w9UP8519KMK9wXtkBPDUou4V1i635WF byrSYXzVAOGKoQ4um7SUVo532p71+q/yb+fNKk3BYwGX05NT2p93ku6vBvUpQ+O1ss6m 9y+i0kdCec/ejKyHAvPnqxQcwx/adxmDoMWhFu6GZaG4S13fPA5BQ0tWfvXc1NSuE3Vh 3TJk22xR25R7FnY6v81ifMsQHfI1ss6hMWMQR2jU6zXfaqrPDl/Nby3T/odV4FgopTER /6Fw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id p20si1689176otk.258.2020.03.06.07.18.45; Fri, 06 Mar 2020 07:19:03 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726751AbgCFPRM (ORCPT + 99 others); Fri, 6 Mar 2020 10:17:12 -0500 Received: from mout.kundenserver.de ([217.72.192.75]:45207 "EHLO mout.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725873AbgCFPRL (ORCPT ); Fri, 6 Mar 2020 10:17:11 -0500 Received: from mail-qk1-f177.google.com ([209.85.222.177]) by mrelayeu.kundenserver.de (mreue108 [212.227.15.145]) with ESMTPSA (Nemesis) id 1N4yyQ-1jKAt80fDQ-010w81; Fri, 06 Mar 2020 16:17:10 +0100 Received: by mail-qk1-f177.google.com with SMTP id p62so2636013qkb.0; Fri, 06 Mar 2020 07:17:09 -0800 (PST) X-Gm-Message-State: ANhLgQ00yfbGOesMzKNnbaH0MXPu/RtTKkKNCnV6066uX0yesRPUH10a Ga+99LkW2YwTYXG/yZR5ziCa3P8szyXefGORtQw= X-Received: by 2002:a37:b984:: with SMTP id j126mr3197034qkf.3.1583507828957; Fri, 06 Mar 2020 07:17:08 -0800 (PST) MIME-Version: 1.0 References: <2e80d7bc-32a0-cc40-00a9-8a383a1966c2@huawei.com> <8207cd51-5b94-2f15-de9f-d85c9c385bca@huawei.com> <6115fa56-a471-1e9f-edbb-e643fa4e7e11@kernel.org> <7c955142-1fcb-d99e-69e4-1e0d3d9eb8c3@huawei.com> <90af535f-00ef-c1e3-ec20-aae2bd2a0d88@kernel.org> In-Reply-To: From: Arnd Bergmann Date: Fri, 6 Mar 2020 16:16:52 +0100 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: About commit "io: change inX() to have their own IO barrier overrides" To: John Garry Cc: Sinan Kaya , "xuwei (O)" , Bjorn Helgaas , "linux-kernel@vger.kernel.org" , Jiaxun Yang , linux-arch , Linux ARM , Will Deacon , Catalin Marinas Content-Type: text/plain; charset="UTF-8" X-Provags-ID: V03:K1:t8A1ODL76LW33V6LCb+zM2r5JjoIA9oWfVI78q4zdx4cVlyh6yI JtEbiAZrTIz9PloGfwy84Ht/RQBohv88T5bWOJe7n+m2aoWr4HXZHs2CjVHmpfSo00zBOEg sLcMzR1eFsg/gSKC5HhvA/USrOtSKDu8SpUoX3wHa9rlZwCFVG4JMTfAecLXV4N6LITKWtH iSy70wmAhsbdOaNvRMn+A== X-Spam-Flag: NO X-UI-Out-Filterresults: notjunk:1;V03:K0:4SGZ1MhXyWw=:3q7Sp8G5686Anlxa7G+Rlr ZAEOcww3mF21E7pNuaaCwQ9PRexwUWE/ExmANEpRbcEVAQGLIKzspDDX52VRinK2nYQIQYTtS Ioa70YYVauO93RZ3qRUH6U5p2ewptmfuDp/1OS2H1tkfWUfvnmfFImh6ZmKS4YjqsPCmoGpHY r+9GNhpg0jiCuf5N+3c+WaGVKoFEsEu4OeOMRfsBcmit1GCBWp8TcNeEfl7frL4APKTyBgCol rOWE/QVebaOu9cqhlN6f178N5qw2VFp/W3ty0/gPYqHvQdTQxut286rS7/wfApLxiBD+LeHsi THEpDSiTOU+ESRgXQdWeGe5ugCXuKCae+K+5nbwKwjnpTfPgXCWklQxdbj/iGS5nMc/GSpKMp ROTSpHBqdE9rxiYjYTuGOk00R+dGQRxApbt0vXZIcbGBLpOwcdakv/9zM2gdit24T1vURDNbq Tb/oRXf7TWE8HCUe8ZEhoVMO2cZvJWDjx85Yyxvoeu0qv7vqDCPFNiqftzM6/52ajhNbo7rLf dv1s9jtEg9F0u59UwSHK3cROkFypGdxaRE84aKL2fQHnoNWFuUJcZNfse5gmUsve//pRkW8Ib nHTLkWTTwWqvg/w0NcaXNwh7l3qHxIONxJ7zvkwNXDDNdMR128kDiitKsIZKvP38fH1EtKYtr 3w1/p6icXPyp4/iJ337v7mYsjY8ovrdUWA8KwKH+6sma8HDrraI+7ftHH5r9/QGu9WrWT/25X oUeBFWEfoysq8hdIw50sxDSsfND0oGKKciPENfYsRGpa7fazOnZ+o7r1b9siuKf02413eZJdB e/mDOa4xMl/BJxymO4G3aSDtzI1rdiMApuGNEF7V/q5CRs9+NQ= Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, Mar 6, 2020 at 11:40 AM John Garry wrote: > On 06/03/2020 07:54, Arnd Bergmann wrote: > > On Fri, Mar 6, 2020 at 4:44 AM Sinan Kaya wrote: > -- a/lib/logic_pio.c > +++ b/lib/logic_pio.c > @@ -229,13 +229,21 @@ unsigned long > logic_pio_trans_cpuaddr(resource_size_t addr) > } > > #if defined(CONFIG_INDIRECT_PIO) && defined(PCI_IOBASE) > + > +#define logic_in_to_cpu_b(x) (x) > +#define logic_in_to_cpu_w(x) __le16_to_cpu(x) > +#define logic_in_to_cpu_l(x) __le32_to_cpu(x) > + > #define BUILD_LOGIC_IO(bw, type) \ > type logic_in##bw(unsigned long addr) \ > { \ > type ret = (type)~0; \ > \ > if (addr < MMIO_UPPER_LIMIT) { \ > - ret = read##bw(PCI_IOBASE + addr); \ > + void __iomem *_addr = PCI_IOBASE + addr; \ > + __io_pbr(); \ > + ret = logic_in_to_cpu_##bw(__raw_read##bw(_addr)); \ > + __io_par(ret); \ > } else if (addr >= MMIO_UPPER_LIMIT && addr < IO_SPACE_LIMIT) {\ > struct logic_pio_hwaddr *entry = find_io_rang > > We could prob combine the le_to_cpu and __raw_read into a single macro. What is the purpose of splitting out the byteswap rather than leaving the open-coded rather than __le16_to_cpu(__raw_readw(PCI_IOBASE + addr))? If this is needed to work across architectures, how about adding an intermediate __raw_inw() etc in asm-generic/io.h like #ifndef __raw_inw #define __raw_inw(a) __raw_readw(PCI_IOBASE + addr)); #endif #include #ifndef inw static inline u16 inw(unsigned long addr) { u16 val; __io_pbr(); val = __le16_to_cpu(__raw_inw(addr)); __io_par(val); return val; } #endif Arnd