linux-pci.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/6] PCI: fix pci_remap_iospace() failure paths
@ 2016-08-15 16:50 Lorenzo Pieralisi
  2016-08-15 16:50 ` [PATCH 1/6] drivers: pci: host: aardvark: fix pci_remap_iospace() failure path Lorenzo Pieralisi
                   ` (6 more replies)
  0 siblings, 7 replies; 9+ messages in thread
From: Lorenzo Pieralisi @ 2016-08-15 16:50 UTC (permalink / raw)
  To: linux-pci
  Cc: Lorenzo Pieralisi, Pratyush Anand, Will Deacon, Phil Edworthy,
	Jingoo Han, Bjorn Helgaas, Rob Herring, Simon Horman,
	Murali Karicheri, Thomas Petazzoni, Thierry Reding

On ARM/ARM64 architectures, PCI IO ports are emulated through memory
mapped IO, by reserving a chunk of virtual address space starting at
PCI_IOBASE and by mapping the PCI host bridges memory address space
driving PCI IO cycles to it.

PCI host bridge drivers that enable downstream PCI IO cycles map the
host bridge memory address responding to PCI IO cycles to the fixed
virtual address space through the pci_remap_iospace() API.

This means that if the pci_remap_iospace() function fails, the
corresponding host bridge PCI IO resource must be considered invalid, in
that there is no way for the kernel to actually drive PCI IO transactions
if the memory addresses responding to PCI IO cycles cannot be mapped into
the CPU virtual address space.

As a follow-up to the linux-pci mailing list thread ([0]), this series
fixes the pci_remap_iospace() failure paths by adding code that handles
the failures and takes the required actions.

Compile tested on all affected PCI host controllers, testing and
reviewing much appreciated.

[0] http://marc.info/?l=linux-pci&m=145816042427417&w=2

Lorenzo Pieralisi (6):
  drivers: pci: host: aardvark: fix pci_remap_iospace() failure path
  drivers: pci: host: designware: fix pci_remap_iospace() failure path
  drivers: pci: host: versatile: fix pci_remap_iospace() failure path
  drivers: pci: host: rcar: fix pci_remap_iospace() failure path
  drivers: pci: host: common: fix pci_remap_iospace() failure path
  drivers: pci: host: tegra: fix pci_remap_iospace() failure path

 drivers/pci/host/pci-aardvark.c    |  8 +++++---
 drivers/pci/host/pci-host-common.c |  8 +++++---
 drivers/pci/host/pci-tegra.c       |  7 +++++--
 drivers/pci/host/pci-versatile.c   |  8 +++++---
 drivers/pci/host/pcie-designware.c | 21 ++++++++++++---------
 drivers/pci/host/pcie-rcar.c       |  9 ++++++---
 6 files changed, 38 insertions(+), 23 deletions(-)

-- 
2.6.4


^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2016-09-06 17:51 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-08-15 16:50 [PATCH 0/6] PCI: fix pci_remap_iospace() failure paths Lorenzo Pieralisi
2016-08-15 16:50 ` [PATCH 1/6] drivers: pci: host: aardvark: fix pci_remap_iospace() failure path Lorenzo Pieralisi
2016-08-15 16:50 ` [PATCH 2/6] drivers: pci: host: designware: " Lorenzo Pieralisi
2016-08-15 16:50 ` [PATCH 3/6] drivers: pci: host: versatile: " Lorenzo Pieralisi
2016-08-15 16:50 ` [PATCH 4/6] drivers: pci: host: rcar: " Lorenzo Pieralisi
2016-08-15 16:50 ` [PATCH 5/6] drivers: pci: host: common: " Lorenzo Pieralisi
2016-08-22 13:21   ` Will Deacon
2016-08-15 16:50 ` [PATCH 6/6] drivers: pci: host: tegra: " Lorenzo Pieralisi
2016-09-06 17:43 ` [PATCH 0/6] PCI: fix pci_remap_iospace() failure paths Bjorn Helgaas

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).