All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v3 0/4] ARM/ARM64: PCI: PCI_PROBE_ONLY clean-up
@ 2016-06-08 11:04 ` Lorenzo Pieralisi
  0 siblings, 0 replies; 24+ messages in thread
From: Lorenzo Pieralisi @ 2016-06-08 11:04 UTC (permalink / raw)
  To: linux-pci, linux-arm-kernel
  Cc: Lorenzo Pieralisi, Russell King, Arnd Bergmann, David Daney,
	Catalin Marinas, Will Deacon, Bjorn Helgaas, Yinghai Lu

Current arm/arm64 code prevents enabling resources in the respective
pcibios_enable_device() callbacks if the PCI_PROBE_ONLY flag is set,
in that on those platforms the resources tree was not validated properly
since PCI resources are not currently claimed on arm/arm64 PCI_PROBE_ONLY
systems.

This is a temporary kludge, in that PCI_PROBE_ONLY flag is used to
describe systems with fixed resources, that can nonetheless be enabled
through the standard pci_enable_resources() call present in PCI core code,
(ie via the generic pcibios_enable_device() call).

To remove the PCI_PROBE_ONLY flag in arm/arm64 pcibios_enable_device()
callbacks, the PCI host controllers that can be used with
PCI_PROBE_ONLY configurations must make sure that devices resources are
validated and inserted in the kernel resource tree even on PCI_PROBE_ONLY
systems so that the generic pcibios_enable_device() generic code, while
enabling resources (pci_enable_resources()), does not find dangling
resources pointers (ie missing parent pointers) that are omens of
an incomplete resource tree, causing failures in resources enablement.

PCI core code provides interfaces to assign/reassign/reallocate PCI
bus resources but it is currently lacking an interface to claim
resources for a specific bus. Arches implement resources claiming through
ad-hoc code built on top of pci_claim_resource() API, but that code
cannot be leveraged on architectures like arm/arm64 that rely on the
generic PCI infrastructure to carry out resources claiming/assignment.

Therefore, to clean up the arm/arm64 resources enablement on
PCI_PROBE_ONLY systems this patchset implements four patches:

PATCH 1: Create PCI core code infrastructure to claim bus resources
PATCH 2: Leverage the infrastructure in PATCH 1 to claim resources in
         the PCI generic host controller on PCI_PROBE_ONLY systems

PATCH 3: Remove the PCI_PROBE_ONLY kludge from the arm64 PCI back-end to
         complete the clean-up and leverage the PCI generic
         pcibios_enable_device() implementation

PATCH 4: Remove the PCI_PROBE_ONLY kludge from the arm PCI back-end to
         complete the clean-up and leverage the PCI generic
         pcibios_enable_device() implementation

Tested on arm/arm64 systems with kvmtool and PCI host generic.

v2 -> v3

- Split patch 3 in two patches so that arm and arm64 are handled
  in different patches
- Improved commits logs, clarified resource parent assignment
- Rebased against v4.7-rc2

v2: https://patchwork.ozlabs.org/patch/590556/

v1 -> v2

- Rewrote patch 1 to recursively claim resources for the whole PCI bus
  hierarchy
- Updated commits logs/tags
- Rebased against v4.5-rc6

v1: https://patchwork.ozlabs.org/patch/545669/

Lorenzo Pieralisi (4):
  PCI: add generic code to claim bus resources
  PCI: host-generic: claim bus resources on PCI_PROBE_ONLY set-ups
  ARM64/PCI: remove arch specific pcibios_enable_device()
  ARM/PCI: remove arch specific pcibios_enable_device()

 arch/arm/kernel/bios32.c           | 12 -------
 arch/arm64/kernel/pci.c            | 13 --------
 drivers/pci/host/pci-host-common.c | 27 +++++++++++++--
 drivers/pci/setup-bus.c            | 68 ++++++++++++++++++++++++++++++++++++++
 include/linux/pci.h                |  1 +
 5 files changed, 94 insertions(+), 27 deletions(-)

-- 
2.6.4


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

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

end of thread, other threads:[~2016-06-30 14:01 UTC | newest]

Thread overview: 24+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-06-08 11:04 [PATCH v3 0/4] ARM/ARM64: PCI: PCI_PROBE_ONLY clean-up Lorenzo Pieralisi
2016-06-08 11:04 ` Lorenzo Pieralisi
2016-06-08 11:04 ` [PATCH v3 1/4] PCI: add generic code to claim bus resources Lorenzo Pieralisi
2016-06-08 11:04   ` Lorenzo Pieralisi
2016-06-08 11:04 ` [PATCH v3 2/4] PCI: host-generic: claim bus resources on PCI_PROBE_ONLY set-ups Lorenzo Pieralisi
2016-06-08 11:04   ` Lorenzo Pieralisi
2016-06-08 11:04 ` [PATCH v3 3/4] ARM64/PCI: remove arch specific pcibios_enable_device() Lorenzo Pieralisi
2016-06-08 11:04   ` Lorenzo Pieralisi
2016-06-08 11:04 ` [PATCH v3 4/4] ARM/PCI: " Lorenzo Pieralisi
2016-06-08 11:04   ` Lorenzo Pieralisi
2016-06-22 22:43   ` Bjorn Helgaas
2016-06-22 22:43     ` Bjorn Helgaas
2016-06-23 10:55     ` Lorenzo Pieralisi
2016-06-23 10:55       ` Lorenzo Pieralisi
2016-06-22 23:07   ` Bjorn Helgaas
2016-06-22 23:07     ` Bjorn Helgaas
2016-06-23 10:39     ` Xuetao Guan
2016-06-23 10:39       ` Xuetao Guan
2016-06-23 16:41       ` Bjorn Helgaas
2016-06-23 16:41         ` Bjorn Helgaas
2016-06-30 14:01         ` Xuetao Guan
2016-06-30 14:01           ` Xuetao Guan
2016-06-22 23:01 ` [PATCH v3 0/4] ARM/ARM64: PCI: PCI_PROBE_ONLY clean-up Bjorn Helgaas
2016-06-22 23:01   ` Bjorn Helgaas

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.