From: Benjamin Herrenschmidt <benh@kernel.crashing.org> To: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>, linux-pci@vger.kernel.org Cc: linux-arch@vger.kernel.org, Michael Ellerman <mpe@ellerman.id.au>, linux-kernel@vger.kernel.org, Paul Mackerras <paulus@samba.org>, Bjorn Helgaas <bhelgaas@google.com>, linux-arm-kernel@lists.infradead.org Subject: Re: [PATCH v3 21/32] powerpc: include default ioremap_nopost() implementation Date: Tue, 11 Apr 2017 23:38:48 +1000 [thread overview] Message-ID: <1491917928.7236.8.camel@kernel.crashing.org> (raw) In-Reply-To: <20170411122923.6285-22-lorenzo.pieralisi@arm.com> On Tue, 2017-04-11 at 13:29 +0100, Lorenzo Pieralisi wrote: > The PCI specifications (Rev 3.0, 3.2.5 "Transaction Ordering and Posting") > mandate non-posted configuration transactions. As further highlighted in > the PCIe specifications (4.0 - Rev0.3, "Ordering Considerations for the > Enhanced Configuration Access Mechanism"), through ECAM and > ECAM-derivative configuration mechanism, the memory mapped transactions > from the host CPU into Configuration Requests on the PCI express fabric > may create ordering problems for software because writes to memory > address are typically posted transactions (unless the architecture can > enforce through virtual address mapping non-posted write transactions > behaviour) but writes to Configuration Space are not posted on the PCI > express fabric. > > Include the asm-generic ioremap_nopost() implementation (currently > falling back to ioremap_nocache()) to provide a non-posted writes > ioremap interface to kernel subsystems. NAK. As explained in my reply to patch 0. > Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com> > > Cc: Michael Ellerman <mpe@ellerman.id.au> > > Cc: Bjorn Helgaas <bhelgaas@google.com> > > Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org> > > Cc: Paul Mackerras <paulus@samba.org> > --- > arch/powerpc/include/asm/io.h | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/arch/powerpc/include/asm/io.h b/arch/powerpc/include/asm/io.h > index 5ed2924..6dcd0e2 100644 > --- a/arch/powerpc/include/asm/io.h > +++ b/arch/powerpc/include/asm/io.h > @@ -757,6 +757,7 @@ extern void __iomem *ioremap_prot(phys_addr_t address, unsigned long size, > extern void __iomem *ioremap_wc(phys_addr_t address, unsigned long size); > > #define ioremap_nocache(addr, size) ioremap((addr), (size)) > > #define ioremap_uc(addr, size) ioremap((addr), (size)) > +#include <asm-generic/ioremap-nopost.h> > > extern void iounmap(volatile void __iomem *addr); > _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
WARNING: multiple messages have this Message-ID (diff)
From: Benjamin Herrenschmidt <benh@kernel.crashing.org> To: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>, linux-pci@vger.kernel.org Cc: linux-arch@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, Michael Ellerman <mpe@ellerman.id.au>, Bjorn Helgaas <bhelgaas@google.com>, Paul Mackerras <paulus@samba.org> Subject: Re: [PATCH v3 21/32] powerpc: include default ioremap_nopost() implementation Date: Tue, 11 Apr 2017 23:38:48 +1000 [thread overview] Message-ID: <1491917928.7236.8.camel@kernel.crashing.org> (raw) Message-ID: <20170411133848.34MgpXHePan9m0iYHBFgk90CZOQC10uEGvAnVwnRlXw@z> (raw) In-Reply-To: <20170411122923.6285-22-lorenzo.pieralisi@arm.com> On Tue, 2017-04-11 at 13:29 +0100, Lorenzo Pieralisi wrote: > The PCI specifications (Rev 3.0, 3.2.5 "Transaction Ordering and Posting") > mandate non-posted configuration transactions. As further highlighted in > the PCIe specifications (4.0 - Rev0.3, "Ordering Considerations for the > Enhanced Configuration Access Mechanism"), through ECAM and > ECAM-derivative configuration mechanism, the memory mapped transactions > from the host CPU into Configuration Requests on the PCI express fabric > may create ordering problems for software because writes to memory > address are typically posted transactions (unless the architecture can > enforce through virtual address mapping non-posted write transactions > behaviour) but writes to Configuration Space are not posted on the PCI > express fabric. > > Include the asm-generic ioremap_nopost() implementation (currently > falling back to ioremap_nocache()) to provide a non-posted writes > ioremap interface to kernel subsystems. NAK. As explained in my reply to patch 0. > Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com> > > Cc: Michael Ellerman <mpe@ellerman.id.au> > > Cc: Bjorn Helgaas <bhelgaas@google.com> > > Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org> > > Cc: Paul Mackerras <paulus@samba.org> > --- > arch/powerpc/include/asm/io.h | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/arch/powerpc/include/asm/io.h b/arch/powerpc/include/asm/io.h > index 5ed2924..6dcd0e2 100644 > --- a/arch/powerpc/include/asm/io.h > +++ b/arch/powerpc/include/asm/io.h > @@ -757,6 +757,7 @@ extern void __iomem *ioremap_prot(phys_addr_t address, unsigned long size, > extern void __iomem *ioremap_wc(phys_addr_t address, unsigned long size); > > #define ioremap_nocache(addr, size) ioremap((addr), (size)) > > #define ioremap_uc(addr, size) ioremap((addr), (size)) > +#include <asm-generic/ioremap-nopost.h> > > extern void iounmap(volatile void __iomem *addr); >
next prev parent reply other threads:[~2017-04-11 13:38 UTC|newest] Thread overview: 87+ messages / expand[flat|nested] mbox.gz Atom feed top 2017-04-11 12:28 [PATCH v3 00/32] PCI: fix config and I/O Address space memory mappings Lorenzo Pieralisi 2017-04-11 12:28 ` [PATCH v3 01/32] PCI: remove __weak tag from pci_remap_iospace() Lorenzo Pieralisi 2017-04-11 12:28 ` [PATCH v3 02/32] asm-generic/pgtable.h: introduce pgprot_nonposted remap attribute Lorenzo Pieralisi 2017-04-11 12:28 ` [PATCH v3 03/32] PCI: fix pci_remap_iospace() " Lorenzo Pieralisi 2017-04-11 12:28 ` [PATCH v3 04/32] asm-generic: add ioremap_nopost() remap interface Lorenzo Pieralisi 2017-04-11 13:39 ` Benjamin Herrenschmidt 2017-04-11 14:31 ` Lorenzo Pieralisi 2017-04-11 23:14 ` Benjamin Herrenschmidt 2017-04-12 10:00 ` Lorenzo Pieralisi 2017-04-12 11:20 ` Russell King - ARM Linux 2017-04-18 15:49 ` Lorenzo Pieralisi 2017-04-18 16:31 ` Bjorn Helgaas 2017-04-18 22:43 ` Benjamin Herrenschmidt 2017-04-11 12:28 ` [PATCH v3 05/32] alpha: include default ioremap_nopost() implementation Lorenzo Pieralisi 2017-04-11 12:28 ` Lorenzo Pieralisi 2017-04-11 12:28 ` [PATCH v3 06/32] avr32: " Lorenzo Pieralisi 2017-04-11 13:55 ` Nicolas Ferre 2017-04-11 12:28 ` [PATCH v3 07/32] arc: " Lorenzo Pieralisi 2017-04-11 12:28 ` [PATCH v3 08/32] cris: " Lorenzo Pieralisi 2017-04-11 12:28 ` Lorenzo Pieralisi 2017-04-11 13:15 ` Jesper Nilsson 2017-04-11 13:15 ` Jesper Nilsson 2017-04-11 12:28 ` [PATCH v3 09/32] frv: " Lorenzo Pieralisi 2017-04-11 12:28 ` Lorenzo Pieralisi 2017-04-11 12:28 ` [PATCH v3 10/32] hexagon: " Lorenzo Pieralisi 2017-04-11 12:28 ` Lorenzo Pieralisi 2017-04-11 12:28 ` [PATCH v3 11/32] ia64: " Lorenzo Pieralisi 2017-04-11 12:28 ` Lorenzo Pieralisi 2017-04-11 12:28 ` [PATCH v3 12/32] m32r: " Lorenzo Pieralisi 2017-04-11 12:28 ` Lorenzo Pieralisi 2017-04-11 12:28 ` [PATCH v3 13/32] m68k: " Lorenzo Pieralisi 2017-04-11 12:28 ` Lorenzo Pieralisi 2017-04-11 12:28 ` [PATCH v3 14/32] metag: " Lorenzo Pieralisi 2017-04-11 12:28 ` Lorenzo Pieralisi 2017-04-11 12:28 ` [PATCH v3 15/32] microblaze: " Lorenzo Pieralisi 2017-04-11 12:28 ` Lorenzo Pieralisi 2017-04-11 12:28 ` [PATCH v3 16/32] mips: " Lorenzo Pieralisi 2017-04-11 12:28 ` [PATCH v3 17/32] mn10300: " Lorenzo Pieralisi 2017-04-11 12:28 ` [PATCH v3 18/32] nios2: " Lorenzo Pieralisi 2017-04-11 12:28 ` Lorenzo Pieralisi 2017-04-11 12:28 ` [PATCH v3 19/32] openrisc: " Lorenzo Pieralisi 2017-04-11 12:28 ` Lorenzo Pieralisi 2017-04-11 12:29 ` [PATCH v3 20/32] parisc: " Lorenzo Pieralisi 2017-04-11 12:29 ` [PATCH v3 21/32] powerpc: " Lorenzo Pieralisi 2017-04-11 12:29 ` Lorenzo Pieralisi 2017-04-11 13:38 ` Benjamin Herrenschmidt [this message] 2017-04-11 13:38 ` Benjamin Herrenschmidt 2017-04-11 14:24 ` Lorenzo Pieralisi 2017-04-11 14:24 ` Lorenzo Pieralisi 2017-04-11 23:15 ` Benjamin Herrenschmidt 2017-04-11 23:15 ` Benjamin Herrenschmidt 2017-04-13 3:35 ` Michael Ellerman 2017-04-11 12:29 ` [PATCH v3 22/32] s390: " Lorenzo Pieralisi 2017-04-11 12:29 ` Lorenzo Pieralisi 2017-04-11 12:29 ` [PATCH v3 23/32] sh: " Lorenzo Pieralisi 2017-04-11 12:29 ` Lorenzo Pieralisi 2017-04-11 12:29 ` [PATCH v3 24/32] sparc: " Lorenzo Pieralisi 2017-04-11 12:29 ` Lorenzo Pieralisi 2017-04-11 12:29 ` [PATCH v3 25/32] tile: " Lorenzo Pieralisi 2017-04-11 12:29 ` [PATCH v3 26/32] unicore32: " Lorenzo Pieralisi 2017-04-11 12:29 ` Lorenzo Pieralisi 2017-04-11 12:29 ` [PATCH v3 27/32] x86: " Lorenzo Pieralisi 2017-04-11 12:29 ` Lorenzo Pieralisi 2017-04-11 12:29 ` [PATCH v3 28/32] xtensa: " Lorenzo Pieralisi 2017-04-11 12:29 ` Lorenzo Pieralisi 2017-04-11 12:29 ` [PATCH v3 29/32] arm64: implement ioremap_nopost() interface Lorenzo Pieralisi 2017-04-11 12:29 ` Lorenzo Pieralisi 2017-04-11 12:29 ` [PATCH v3 30/32] arm: " Lorenzo Pieralisi 2017-04-11 12:29 ` [PATCH v3 31/32] lib: fix Devres devm_ioremap_* offset parameter kerneldoc description Lorenzo Pieralisi 2017-04-11 12:29 ` [PATCH v3 32/32] lib: implement Devres ioremap_nopost() interface Lorenzo Pieralisi 2017-04-11 12:29 ` Lorenzo Pieralisi 2017-04-11 13:38 ` [PATCH v3 00/32] PCI: fix config and I/O Address space memory mappings Benjamin Herrenschmidt 2017-04-11 14:08 ` Lorenzo Pieralisi 2017-04-11 23:12 ` Benjamin Herrenschmidt 2017-04-12 9:44 ` Lorenzo Pieralisi 2017-04-12 13:48 ` Benjamin Herrenschmidt 2017-04-12 11:31 ` Russell King - ARM Linux 2017-04-12 13:51 ` Benjamin Herrenschmidt 2017-04-12 14:16 ` Russell King - ARM Linux 2017-04-12 14:41 ` Lorenzo Pieralisi 2017-04-12 22:30 ` Benjamin Herrenschmidt 2017-04-12 22:45 ` Russell King - ARM Linux 2017-04-13 0:53 ` Benjamin Herrenschmidt 2017-04-18 8:57 ` Lorenzo Pieralisi 2017-04-18 10:36 ` Benjamin Herrenschmidt 2017-04-18 11:03 ` Lorenzo Pieralisi 2017-04-18 22:38 ` Benjamin Herrenschmidt
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=1491917928.7236.8.camel@kernel.crashing.org \ --to=benh@kernel.crashing.org \ --cc=bhelgaas@google.com \ --cc=linux-arch@vger.kernel.org \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-pci@vger.kernel.org \ --cc=lorenzo.pieralisi@arm.com \ --cc=mpe@ellerman.id.au \ --cc=paulus@samba.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).