]> Gentwo Git Trees - linux/.git/commit
PCI: host-generic: Move bridge allocation outside of pci_host_common_init()
authorMarc Zyngier <maz@kernel.org>
Tue, 25 Nov 2025 10:27:26 +0000 (10:27 +0000)
committerManivannan Sadhasivam <mani@kernel.org>
Tue, 25 Nov 2025 14:09:42 +0000 (19:39 +0530)
commitb1e24e05e1408602d3414b95031242bbaa72226a
tree8f27671f01c6d1d3b1f7c5dd76a09a282e7752df
parent3a8660878839faadb4f1a6dd72c3179c1df56787
PCI: host-generic: Move bridge allocation outside of pci_host_common_init()

Having the host bridge allocation inside pci_host_common_init() results
in a lot of complexity in the pcie-apple driver (the only direct user
of this function outside of core PCI code).

It forces the allocation of driver-specific tracking structures outside
of the bridge allocation, which in turn requires it to use inefficient
data structures to match the bridge and the private structure as needed.

Instead, let the bridge structure be passed to pci_host_common_init(),
allowing the driver to allocate it together with the private data,
as it is usually intended. The driver can then retrieve the bridge
via the owning device attached to the PCI config window structure.
This allows the pcie-apple driver to be significantly simplified.

Both core and driver code are changed in one go to avoid going via
a transitional interface.

Signed-off-by: Marc Zyngier <maz@kernel.org>
Signed-off-by: Manivannan Sadhasivam <mani@kernel.org>
Reviewed-by: Radu Rendec <rrendec@redhat.com>
Cc: Bjorn Helgaas <bhelgaas@google.com>
Cc: Manivannan Sadhasivam <mani@kernel.org>
Cc: Rob Herring <robh@kernel.org>
Cc: Krzysztof WilczyƄski <kwilczynski@kernel.org>
Cc: Lorenzo Pieralisi <lpieralisi@kernel.org>
Link: https://lore.kernel.org/r/86jyzms036.wl-maz@kernel.org
Link: https://patch.msgid.link/20251125102726.865617-1-maz@kernel.org
drivers/pci/controller/pci-host-common.c
drivers/pci/controller/pci-host-common.h
drivers/pci/controller/pcie-apple.c