From: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
To: Bjorn Helgaas <helgaas@kernel.org>
Cc: linux-pci@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-arm-kernel@lists.infradead.org,
Arnd Bergmann <arnd@arndb.de>, Will Deacon <will.deacon@arm.com>,
Thomas Gleixner <tglx@linutronix.de>,
Bjorn Helgaas <bhelgaas@google.com>,
Richard Henderson <rth@twiddle.net>,
Russell King <linux@armlinux.org.uk>,
Tony Luck <tony.luck@intel.com>,
Catalin Marinas <catalin.marinas@arm.com>,
Ingo Molnar <mingo@redhat.com>,
Haavard Skinnemoen <hskinnemoen@gmail.com>,
Pratyush Anand <pratyush.anand@gmail.com>,
Jingoo Han <jingoohan1@gmail.com>,
Mingkai Hu <mingkai.hu@freescale.com>,
John Garry <john.garry@huawei.com>,
Tanmay Inamdar <tinamdar@apm.com>,
Murali Karicheri <m-karicheri2@ti.com>,
Bharat Kumar Gogada <bharat.kumar.gogada@xilinx.com>,
Ray Jui <rjui@broadcom.com>, Wenrui Li <wenrui.li@rock-chips.com>,
Shawn Lin <shawn.lin@rock-chips.com>,
Minghuan Lian <minghuan.Lian@freescale.com>,
Jon Mason <jonmason@broadcom.com>,
Gabriele Paoloni <gabriele.paoloni@huawei.com>,
Thomas Petazzoni <thomas.petazzoni@free-electrons.com>,
Joao Pinto <Joao.Pinto@synopsys.com>,
Thierry Reding <thierry.reding@gmail.com>,
Michal Simek <michal.simek@xilinx.com>,
Stanimir Varbanov <svarbanov@mm-sol.com>,
Zhou Wang <wangzhou1@hisilicon.com>,
Roy Zang <tie-fei.zang@freescale.com>,
"Luis R. Rodriguez" <mcgrof@kernel.org>
Subject: Re: [PATCH v2 02/22] asm-generic/io.h: add ioremap_nopost remap interface
Date: Tue, 28 Mar 2017 15:45:43 +0100 [thread overview]
Message-ID: <20170328144543.GA18046@red-moon> (raw)
In-Reply-To: <20170328014110.GI25380@bhelgaas-glaptop.roam.corp.google.com>
On Mon, Mar 27, 2017 at 08:41:10PM -0500, Bjorn Helgaas wrote:
> On Mon, Mar 27, 2017 at 10:49:30AM +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.
> >
> > Current DT and ACPI host bridge controllers map PCI configuration space
> > (ECAM and ECAM-derivative) into the virtual address space through
> > ioremap() calls, that are non-cacheable device accesses on most
> > architectures, but may provide "bufferable" or "posted" write semantics
> > in architecture like eg ARM/ARM64 that allow ioremap'ed regions writes
> > to be buffered in the bus connecting the host CPU to the PCI fabric;
> > this behaviour, as underlined in the PCIe specifications, may trigger
> > transactions ordering rules and must be prevented.
> >
> > Introduce a new generic and explicit API to create a memory
> > mapping for ECAM and ECAM-derivative config space area that
> > defaults to ioremap_nocache() (which should provide a sane default
> > behaviour) but still allowing architectures on which ioremap_nocache()
> > results in posted write transactions to override the function
> > call with an arch specific implementation that complies with
> > the PCI specifications for configuration transactions.
> >
> > Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
> > Cc: Arnd Bergmann <arnd@arndb.de>
> > Cc: Will Deacon <will.deacon@arm.com>
> > Cc: Thomas Gleixner <tglx@linutronix.de>
> > Cc: Bjorn Helgaas <bhelgaas@google.com>
> > Cc: Richard Henderson <rth@twiddle.net>
> > Cc: Russell King <linux@armlinux.org.uk>
> > Cc: Tony Luck <tony.luck@intel.com>
> > Cc: Catalin Marinas <catalin.marinas@arm.com>
> > Cc: Ingo Molnar <mingo@redhat.com>
> > Cc: Haavard Skinnemoen <hskinnemoen@gmail.com>
> > ---
> > arch/alpha/include/asm/io.h | 1 +
> > arch/avr32/include/asm/io.h | 1 +
> > arch/frv/include/asm/io.h | 1 +
> > arch/ia64/include/asm/io.h | 1 +
> > arch/x86/include/asm/io.h | 1 +
> > include/asm-generic/io.h | 4 ++++
> > 6 files changed, 9 insertions(+)
> >
> > diff --git a/arch/alpha/include/asm/io.h b/arch/alpha/include/asm/io.h
> > index ff40491..27379ea 100644
> > --- a/arch/alpha/include/asm/io.h
> > +++ b/arch/alpha/include/asm/io.h
> > @@ -300,6 +300,7 @@ static inline void __iomem * ioremap_nocache(unsigned long offset,
> > }
> >
> > #define ioremap_uc ioremap_nocache
> > +#define ioremap_nopost ioremap_nocache
> >
> > static inline void iounmap(volatile void __iomem *addr)
> > {
> > diff --git a/arch/avr32/include/asm/io.h b/arch/avr32/include/asm/io.h
> > index f855646..3f1ced8 100644
> > --- a/arch/avr32/include/asm/io.h
> > +++ b/arch/avr32/include/asm/io.h
> > @@ -298,6 +298,7 @@ extern void __iounmap(void __iomem *addr);
> > #define ioremap_wc ioremap_nocache
> > #define ioremap_wt ioremap_nocache
> > #define ioremap_uc ioremap_nocache
> > +#define ioremap_nopost ioremap_nocache
> >
> > #define cached(addr) P1SEGADDR(addr)
> > #define uncached(addr) P2SEGADDR(addr)
> > diff --git a/arch/frv/include/asm/io.h b/arch/frv/include/asm/io.h
> > index 8062fc7..302fb8c 100644
> > --- a/arch/frv/include/asm/io.h
> > +++ b/arch/frv/include/asm/io.h
> > @@ -290,6 +290,7 @@ static inline void __iomem *ioremap_fullcache(unsigned long physaddr, unsigned l
> >
> > #define ioremap_wc ioremap_nocache
> > #define ioremap_uc ioremap_nocache
> > +#define ioremap_nopost ioremap_nocache
> >
> > extern void iounmap(void volatile __iomem *addr);
> >
> > diff --git a/arch/ia64/include/asm/io.h b/arch/ia64/include/asm/io.h
> > index 5de673a..70a4985 100644
> > --- a/arch/ia64/include/asm/io.h
> > +++ b/arch/ia64/include/asm/io.h
> > @@ -434,6 +434,7 @@ static inline void __iomem * ioremap_cache (unsigned long phys_addr, unsigned lo
> > }
> > #define ioremap_cache ioremap_cache
> > #define ioremap_uc ioremap_nocache
> > +#define ioremap_nopost ioremap_nocache
> >
> >
> > /*
> > diff --git a/arch/x86/include/asm/io.h b/arch/x86/include/asm/io.h
> > index 7afb0e2..50b292f 100644
> > --- a/arch/x86/include/asm/io.h
> > +++ b/arch/x86/include/asm/io.h
> > @@ -171,6 +171,7 @@ static inline unsigned int isa_virt_to_bus(volatile void *address)
> > extern void __iomem *ioremap_nocache(resource_size_t offset, unsigned long size);
> > extern void __iomem *ioremap_uc(resource_size_t offset, unsigned long size);
> > #define ioremap_uc ioremap_uc
> > +#define ioremap_nopost ioremap_nocache
>
> These are all the same as the default from asm-generic.h. Do we really
> need these definitions in alpha, avr32, frv, ia64, x86?
Those arches do not include asm-generic.h (I suppose for a good reason)
but a definition is needed anyway if we want code using ioremap_nopost()
to be unconditional. This is one way of doing it, there are others not
sure they are any better, I am open to suggestions.
Thanks,
Lorenzo
> > extern void __iomem *ioremap_cache(resource_size_t offset, unsigned long size);
> > extern void __iomem *ioremap_prot(resource_size_t offset, unsigned long size, unsigned long prot_val);
> > diff --git a/include/asm-generic/io.h b/include/asm-generic/io.h
> > index 7ef015e..0e81938 100644
> > --- a/include/asm-generic/io.h
> > +++ b/include/asm-generic/io.h
> > @@ -915,6 +915,10 @@ extern void ioport_unmap(void __iomem *p);
> > #endif /* CONFIG_GENERIC_IOMAP */
> > #endif /* CONFIG_HAS_IOPORT_MAP */
> >
> > +#ifndef ioremap_nopost
> > +#define ioremap_nopost ioremap_nocache
> > +#endif
> > +
> > #ifndef xlate_dev_kmem_ptr
> > #define xlate_dev_kmem_ptr xlate_dev_kmem_ptr
> > static inline void *xlate_dev_kmem_ptr(void *addr)
> > --
> > 2.10.0
> >
WARNING: multiple messages have this Message-ID (diff)
From: lorenzo.pieralisi@arm.com (Lorenzo Pieralisi)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v2 02/22] asm-generic/io.h: add ioremap_nopost remap interface
Date: Tue, 28 Mar 2017 15:45:43 +0100 [thread overview]
Message-ID: <20170328144543.GA18046@red-moon> (raw)
In-Reply-To: <20170328014110.GI25380@bhelgaas-glaptop.roam.corp.google.com>
On Mon, Mar 27, 2017 at 08:41:10PM -0500, Bjorn Helgaas wrote:
> On Mon, Mar 27, 2017 at 10:49:30AM +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.
> >
> > Current DT and ACPI host bridge controllers map PCI configuration space
> > (ECAM and ECAM-derivative) into the virtual address space through
> > ioremap() calls, that are non-cacheable device accesses on most
> > architectures, but may provide "bufferable" or "posted" write semantics
> > in architecture like eg ARM/ARM64 that allow ioremap'ed regions writes
> > to be buffered in the bus connecting the host CPU to the PCI fabric;
> > this behaviour, as underlined in the PCIe specifications, may trigger
> > transactions ordering rules and must be prevented.
> >
> > Introduce a new generic and explicit API to create a memory
> > mapping for ECAM and ECAM-derivative config space area that
> > defaults to ioremap_nocache() (which should provide a sane default
> > behaviour) but still allowing architectures on which ioremap_nocache()
> > results in posted write transactions to override the function
> > call with an arch specific implementation that complies with
> > the PCI specifications for configuration transactions.
> >
> > Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
> > Cc: Arnd Bergmann <arnd@arndb.de>
> > Cc: Will Deacon <will.deacon@arm.com>
> > Cc: Thomas Gleixner <tglx@linutronix.de>
> > Cc: Bjorn Helgaas <bhelgaas@google.com>
> > Cc: Richard Henderson <rth@twiddle.net>
> > Cc: Russell King <linux@armlinux.org.uk>
> > Cc: Tony Luck <tony.luck@intel.com>
> > Cc: Catalin Marinas <catalin.marinas@arm.com>
> > Cc: Ingo Molnar <mingo@redhat.com>
> > Cc: Haavard Skinnemoen <hskinnemoen@gmail.com>
> > ---
> > arch/alpha/include/asm/io.h | 1 +
> > arch/avr32/include/asm/io.h | 1 +
> > arch/frv/include/asm/io.h | 1 +
> > arch/ia64/include/asm/io.h | 1 +
> > arch/x86/include/asm/io.h | 1 +
> > include/asm-generic/io.h | 4 ++++
> > 6 files changed, 9 insertions(+)
> >
> > diff --git a/arch/alpha/include/asm/io.h b/arch/alpha/include/asm/io.h
> > index ff40491..27379ea 100644
> > --- a/arch/alpha/include/asm/io.h
> > +++ b/arch/alpha/include/asm/io.h
> > @@ -300,6 +300,7 @@ static inline void __iomem * ioremap_nocache(unsigned long offset,
> > }
> >
> > #define ioremap_uc ioremap_nocache
> > +#define ioremap_nopost ioremap_nocache
> >
> > static inline void iounmap(volatile void __iomem *addr)
> > {
> > diff --git a/arch/avr32/include/asm/io.h b/arch/avr32/include/asm/io.h
> > index f855646..3f1ced8 100644
> > --- a/arch/avr32/include/asm/io.h
> > +++ b/arch/avr32/include/asm/io.h
> > @@ -298,6 +298,7 @@ extern void __iounmap(void __iomem *addr);
> > #define ioremap_wc ioremap_nocache
> > #define ioremap_wt ioremap_nocache
> > #define ioremap_uc ioremap_nocache
> > +#define ioremap_nopost ioremap_nocache
> >
> > #define cached(addr) P1SEGADDR(addr)
> > #define uncached(addr) P2SEGADDR(addr)
> > diff --git a/arch/frv/include/asm/io.h b/arch/frv/include/asm/io.h
> > index 8062fc7..302fb8c 100644
> > --- a/arch/frv/include/asm/io.h
> > +++ b/arch/frv/include/asm/io.h
> > @@ -290,6 +290,7 @@ static inline void __iomem *ioremap_fullcache(unsigned long physaddr, unsigned l
> >
> > #define ioremap_wc ioremap_nocache
> > #define ioremap_uc ioremap_nocache
> > +#define ioremap_nopost ioremap_nocache
> >
> > extern void iounmap(void volatile __iomem *addr);
> >
> > diff --git a/arch/ia64/include/asm/io.h b/arch/ia64/include/asm/io.h
> > index 5de673a..70a4985 100644
> > --- a/arch/ia64/include/asm/io.h
> > +++ b/arch/ia64/include/asm/io.h
> > @@ -434,6 +434,7 @@ static inline void __iomem * ioremap_cache (unsigned long phys_addr, unsigned lo
> > }
> > #define ioremap_cache ioremap_cache
> > #define ioremap_uc ioremap_nocache
> > +#define ioremap_nopost ioremap_nocache
> >
> >
> > /*
> > diff --git a/arch/x86/include/asm/io.h b/arch/x86/include/asm/io.h
> > index 7afb0e2..50b292f 100644
> > --- a/arch/x86/include/asm/io.h
> > +++ b/arch/x86/include/asm/io.h
> > @@ -171,6 +171,7 @@ static inline unsigned int isa_virt_to_bus(volatile void *address)
> > extern void __iomem *ioremap_nocache(resource_size_t offset, unsigned long size);
> > extern void __iomem *ioremap_uc(resource_size_t offset, unsigned long size);
> > #define ioremap_uc ioremap_uc
> > +#define ioremap_nopost ioremap_nocache
>
> These are all the same as the default from asm-generic.h. Do we really
> need these definitions in alpha, avr32, frv, ia64, x86?
Those arches do not include asm-generic.h (I suppose for a good reason)
but a definition is needed anyway if we want code using ioremap_nopost()
to be unconditional. This is one way of doing it, there are others not
sure they are any better, I am open to suggestions.
Thanks,
Lorenzo
> > extern void __iomem *ioremap_cache(resource_size_t offset, unsigned long size);
> > extern void __iomem *ioremap_prot(resource_size_t offset, unsigned long size, unsigned long prot_val);
> > diff --git a/include/asm-generic/io.h b/include/asm-generic/io.h
> > index 7ef015e..0e81938 100644
> > --- a/include/asm-generic/io.h
> > +++ b/include/asm-generic/io.h
> > @@ -915,6 +915,10 @@ extern void ioport_unmap(void __iomem *p);
> > #endif /* CONFIG_GENERIC_IOMAP */
> > #endif /* CONFIG_HAS_IOPORT_MAP */
> >
> > +#ifndef ioremap_nopost
> > +#define ioremap_nopost ioremap_nocache
> > +#endif
> > +
> > #ifndef xlate_dev_kmem_ptr
> > #define xlate_dev_kmem_ptr xlate_dev_kmem_ptr
> > static inline void *xlate_dev_kmem_ptr(void *addr)
> > --
> > 2.10.0
> >
next prev parent reply other threads:[~2017-03-28 14:45 UTC|newest]
Thread overview: 115+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-03-27 9:49 [PATCH v2 00/22] PCI: fix config and I/O Address space memory mappings Lorenzo Pieralisi
2017-03-27 9:49 ` Lorenzo Pieralisi
2017-03-27 9:49 ` [PATCH v2 01/22] PCI: remove __weak tag from pci_remap_iospace() Lorenzo Pieralisi
2017-03-27 9:49 ` Lorenzo Pieralisi
2017-03-27 9:49 ` Lorenzo Pieralisi
2017-03-27 9:49 ` [PATCH v2 02/22] asm-generic/io.h: add ioremap_nopost remap interface Lorenzo Pieralisi
2017-03-27 9:49 ` Lorenzo Pieralisi
2017-03-28 1:41 ` Bjorn Helgaas
2017-03-28 1:41 ` Bjorn Helgaas
2017-03-28 1:41 ` Bjorn Helgaas
2017-03-28 14:45 ` Lorenzo Pieralisi [this message]
2017-03-28 14:45 ` Lorenzo Pieralisi
2017-03-30 16:47 ` Bjorn Helgaas
2017-03-30 16:47 ` Bjorn Helgaas
2017-03-30 16:47 ` Bjorn Helgaas
2017-04-05 10:58 ` Russell King - ARM Linux
2017-04-05 10:58 ` Russell King - ARM Linux
2017-04-05 12:38 ` Lorenzo Pieralisi
2017-04-05 12:38 ` Lorenzo Pieralisi
2017-04-06 10:26 ` Lorenzo Pieralisi
2017-04-06 10:26 ` Lorenzo Pieralisi
2017-04-06 10:47 ` Russell King - ARM Linux
2017-04-06 10:47 ` Russell King - ARM Linux
2017-04-10 14:30 ` Lorenzo Pieralisi
2017-04-10 14:30 ` Lorenzo Pieralisi
2017-04-06 10:53 ` Luis R. Rodriguez
2017-04-06 10:53 ` Luis R. Rodriguez
2017-04-06 11:38 ` Lorenzo Pieralisi
2017-04-06 11:38 ` Lorenzo Pieralisi
2017-04-06 11:59 ` Luis R. Rodriguez
2017-04-06 11:59 ` Luis R. Rodriguez
2017-04-06 13:07 ` Russell King - ARM Linux
2017-04-06 13:07 ` Russell King - ARM Linux
2017-04-06 16:21 ` Lorenzo Pieralisi
2017-04-06 16:21 ` Lorenzo Pieralisi
2017-04-06 16:40 ` Russell King - ARM Linux
2017-04-06 16:40 ` Russell King - ARM Linux
2017-04-06 17:09 ` Lorenzo Pieralisi
2017-04-06 17:09 ` Lorenzo Pieralisi
2017-04-06 17:19 ` Russell King - ARM Linux
2017-04-06 17:19 ` Russell King - ARM Linux
2017-04-06 12:11 ` Russell King - ARM Linux
2017-04-06 12:11 ` Russell King - ARM Linux
2017-04-06 12:25 ` Luis R. Rodriguez
2017-04-06 12:25 ` Luis R. Rodriguez
2017-03-27 9:49 ` [PATCH v2 03/22] asm-generic/pgtable.h: introduce pgprot_nonposted remap attribute Lorenzo Pieralisi
2017-03-27 9:49 ` Lorenzo Pieralisi
2017-03-27 9:49 ` [PATCH v2 04/22] PCI: fix pci_remap_iospace() " Lorenzo Pieralisi
2017-03-27 9:49 ` Lorenzo Pieralisi
2017-03-27 9:49 ` Lorenzo Pieralisi
2017-03-27 9:49 ` [PATCH v2 05/22] ARM64: implement ioremap_nopost() interface Lorenzo Pieralisi
2017-03-27 9:49 ` Lorenzo Pieralisi
2017-03-27 9:49 ` Lorenzo Pieralisi
2017-03-30 16:19 ` Will Deacon
2017-03-30 16:19 ` Will Deacon
2017-03-30 16:19 ` Will Deacon
2017-03-27 9:49 ` [PATCH v2 06/22] ARM: " Lorenzo Pieralisi
2017-03-27 9:49 ` Lorenzo Pieralisi
2017-03-31 11:08 ` Lorenzo Pieralisi
2017-03-31 11:08 ` Lorenzo Pieralisi
2017-03-31 11:08 ` Lorenzo Pieralisi
2017-04-05 10:21 ` Lorenzo Pieralisi
2017-04-05 10:21 ` Lorenzo Pieralisi
2017-04-05 10:21 ` Lorenzo Pieralisi
2017-03-27 9:49 ` [PATCH v2 07/22] PCI: ECAM: use ioremap_nopost() to map config region Lorenzo Pieralisi
2017-03-27 9:49 ` Lorenzo Pieralisi
2017-03-30 16:20 ` Will Deacon
2017-03-30 16:20 ` Will Deacon
2017-03-30 16:20 ` Will Deacon
2017-03-27 9:49 ` [PATCH v2 08/22] lib: implement Devres ioremap_nopost() interface Lorenzo Pieralisi
2017-03-27 9:49 ` Lorenzo Pieralisi
2017-03-28 1:41 ` Bjorn Helgaas
2017-03-28 1:41 ` Bjorn Helgaas
2017-03-28 1:41 ` Bjorn Helgaas
2017-03-28 14:50 ` Lorenzo Pieralisi
2017-03-28 14:50 ` Lorenzo Pieralisi
2017-03-28 15:55 ` Tejun Heo
2017-03-28 15:55 ` Tejun Heo
2017-03-27 9:49 ` [PATCH v2 09/22] PCI: xilinx: update PCI config space remap function Lorenzo Pieralisi
2017-03-27 9:49 ` Lorenzo Pieralisi
2017-03-27 9:49 ` [PATCH v2 10/22] PCI: xilinx-nwl: " Lorenzo Pieralisi
2017-03-27 9:49 ` Lorenzo Pieralisi
2017-03-27 9:49 ` Lorenzo Pieralisi
2017-03-27 9:49 ` [PATCH v2 11/22] PCI: spear13xx: " Lorenzo Pieralisi
2017-03-27 9:49 ` Lorenzo Pieralisi
2017-03-27 9:49 ` [PATCH v2 12/22] PCI: rockchip: " Lorenzo Pieralisi
2017-03-27 9:49 ` Lorenzo Pieralisi
2017-03-27 9:49 ` [PATCH v2 13/22] PCI: qcom: " Lorenzo Pieralisi
2017-03-27 9:49 ` Lorenzo Pieralisi
2017-03-27 9:49 ` [PATCH v2 14/22] PCI: iproc-platform: " Lorenzo Pieralisi
2017-03-27 9:49 ` Lorenzo Pieralisi
2017-03-27 9:49 ` Lorenzo Pieralisi
2017-03-27 9:49 ` [PATCH v2 15/22] PCI: hisi: " Lorenzo Pieralisi
2017-03-27 9:49 ` Lorenzo Pieralisi
2017-03-27 9:49 ` Lorenzo Pieralisi
2017-03-27 9:49 ` [PATCH v2 16/22] PCI: designware: " Lorenzo Pieralisi
2017-03-27 9:49 ` Lorenzo Pieralisi
2017-03-27 9:49 ` [PATCH v2 17/22] PCI: armada8k: " Lorenzo Pieralisi
2017-03-27 9:49 ` Lorenzo Pieralisi
2017-03-27 9:49 ` Lorenzo Pieralisi
2017-03-27 9:49 ` [PATCH v2 18/22] PCI: xgene: " Lorenzo Pieralisi
2017-03-27 9:49 ` Lorenzo Pieralisi
2017-03-27 9:49 ` Lorenzo Pieralisi
2017-03-27 9:49 ` [PATCH v2 19/22] PCI: tegra: " Lorenzo Pieralisi
2017-03-27 9:49 ` Lorenzo Pieralisi
2017-03-27 9:49 ` Lorenzo Pieralisi
2017-03-27 9:49 ` [PATCH v2 20/22] PCI: layerscape: " Lorenzo Pieralisi
2017-03-27 9:49 ` Lorenzo Pieralisi
2017-03-27 9:49 ` Lorenzo Pieralisi
2017-03-27 9:49 ` [PATCH v2 21/22] PCI: keystone-dw: " Lorenzo Pieralisi
2017-03-27 9:49 ` Lorenzo Pieralisi
2017-03-27 9:49 ` Lorenzo Pieralisi
2017-03-27 9:49 ` [PATCH v2 22/22] PCI: versatile: " Lorenzo Pieralisi
2017-03-27 9:49 ` Lorenzo Pieralisi
2017-03-27 9:49 ` Lorenzo Pieralisi
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=20170328144543.GA18046@red-moon \
--to=lorenzo.pieralisi@arm.com \
--cc=Joao.Pinto@synopsys.com \
--cc=arnd@arndb.de \
--cc=bharat.kumar.gogada@xilinx.com \
--cc=bhelgaas@google.com \
--cc=catalin.marinas@arm.com \
--cc=gabriele.paoloni@huawei.com \
--cc=helgaas@kernel.org \
--cc=hskinnemoen@gmail.com \
--cc=jingoohan1@gmail.com \
--cc=john.garry@huawei.com \
--cc=jonmason@broadcom.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=linux@armlinux.org.uk \
--cc=m-karicheri2@ti.com \
--cc=mcgrof@kernel.org \
--cc=michal.simek@xilinx.com \
--cc=minghuan.Lian@freescale.com \
--cc=mingkai.hu@freescale.com \
--cc=mingo@redhat.com \
--cc=pratyush.anand@gmail.com \
--cc=rjui@broadcom.com \
--cc=rth@twiddle.net \
--cc=shawn.lin@rock-chips.com \
--cc=svarbanov@mm-sol.com \
--cc=tglx@linutronix.de \
--cc=thierry.reding@gmail.com \
--cc=thomas.petazzoni@free-electrons.com \
--cc=tie-fei.zang@freescale.com \
--cc=tinamdar@apm.com \
--cc=tony.luck@intel.com \
--cc=wangzhou1@hisilicon.com \
--cc=wenrui.li@rock-chips.com \
--cc=will.deacon@arm.com \
/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: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.