linux-pci.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] PCI: Prevent NULL dereference during pciehp probe
@ 2014-06-09 21:03 Andreas Noever
  2014-09-15 22:20 ` Rajat Jain
  2014-09-16 21:20 ` Bjorn Helgaas
  0 siblings, 2 replies; 6+ messages in thread
From: Andreas Noever @ 2014-06-09 21:03 UTC (permalink / raw)
  To: linux-kernel, Bjorn Helgaas, linux-pci; +Cc: Andreas Noever

pciehp assumes that dev->subordinate exists. But we do not assign a bus
if we run out of bus numbers during enumeration. This leads to a NULL
dereference in init_slot (and other places).

Change pciehp_probe to return -ENODEV when no subordinate bus is
present.

Signed-off-by: Andreas Noever <andreas.noever@gmail.com>
---
 drivers/pci/hotplug/pciehp_core.c | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/drivers/pci/hotplug/pciehp_core.c b/drivers/pci/hotplug/pciehp_core.c
index 0e0a2ff..e5abcaf 100644
--- a/drivers/pci/hotplug/pciehp_core.c
+++ b/drivers/pci/hotplug/pciehp_core.c
@@ -255,6 +255,13 @@ static int pciehp_probe(struct pcie_device *dev)
 	else if (pciehp_acpi_slot_detection_check(dev->port))
 		goto err_out_none;
 
+	if (!dev->port->subordinate) {
+		/* Can happen if we run out of bus numbers during probe */
+		dev_err(&dev->device,
+			"Hotplug bridge without secondary bus, ignoring\n");
+		goto err_out_none;
+	}
+
 	ctrl = pcie_init(dev);
 	if (!ctrl) {
 		dev_err(&dev->device, "Controller initialization failed\n");
-- 
2.0.0


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

end of thread, other threads:[~2014-09-23 22:07 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-06-09 21:03 [PATCH] PCI: Prevent NULL dereference during pciehp probe Andreas Noever
2014-09-15 22:20 ` Rajat Jain
2014-09-23 21:55   ` Guenter Roeck
2014-09-23 22:04     ` Bjorn Helgaas
2014-09-23 22:07       ` Guenter Roeck
2014-09-16 21:20 ` 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).