* [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
* RE: [PATCH] PCI: Prevent NULL dereference during pciehp probe 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-16 21:20 ` Bjorn Helgaas 1 sibling, 1 reply; 6+ messages in thread From: Rajat Jain @ 2014-09-15 22:20 UTC (permalink / raw) To: Andreas Noever, linux-kernel, Bjorn Helgaas, linux-pci Cc: linux-pci, Guenter Roeck, rajatxjain, Guenter Roeck Hello Bjorn, I think this patch needs to be applied to all -stable branches (all the way back to 3.2). I encounter this same issue on my platform that is running 3.14.y. Thanks, Rajat > -----Original Message----- > From: linux-pci-owner@vger.kernel.org [mailto:linux-pci- > owner@vger.kernel.org] On Behalf Of Andreas Noever > Sent: Monday, June 09, 2014 2:04 PM > To: linux-kernel@vger.kernel.org; Bjorn Helgaas; linux-pci@vger.kernel.org > Cc: Andreas Noever > Subject: [PATCH] PCI: Prevent NULL dereference during pciehp probe > > 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 > > -- > To unsubscribe from this list: send the line "unsubscribe linux-pci" in the > body of a message to majordomo@vger.kernel.org More majordomo info at > http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] PCI: Prevent NULL dereference during pciehp probe 2014-09-15 22:20 ` Rajat Jain @ 2014-09-23 21:55 ` Guenter Roeck 2014-09-23 22:04 ` Bjorn Helgaas 0 siblings, 1 reply; 6+ messages in thread From: Guenter Roeck @ 2014-09-23 21:55 UTC (permalink / raw) To: Rajat Jain Cc: Andreas Noever, linux-kernel, Bjorn Helgaas, linux-pci, Guenter Roeck, rajatxjain On Mon, Sep 15, 2014 at 10:20:41PM +0000, Rajat Jain wrote: > Hello Bjorn, > > I think this patch needs to be applied to all -stable branches (all the way back to 3.2). > > I encounter this same issue on my platform that is running 3.14.y. > Bjorn, can you send this to -stable, or is it ok if I do it ? Thanks, Guenter > Thanks, > > Rajat > > > -----Original Message----- > > From: linux-pci-owner@vger.kernel.org [mailto:linux-pci- > > owner@vger.kernel.org] On Behalf Of Andreas Noever > > Sent: Monday, June 09, 2014 2:04 PM > > To: linux-kernel@vger.kernel.org; Bjorn Helgaas; linux-pci@vger.kernel.org > > Cc: Andreas Noever > > Subject: [PATCH] PCI: Prevent NULL dereference during pciehp probe > > > > 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 > > > > -- > > To unsubscribe from this list: send the line "unsubscribe linux-pci" in the > > body of a message to majordomo@vger.kernel.org More majordomo info at > > http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] PCI: Prevent NULL dereference during pciehp probe 2014-09-23 21:55 ` Guenter Roeck @ 2014-09-23 22:04 ` Bjorn Helgaas 2014-09-23 22:07 ` Guenter Roeck 0 siblings, 1 reply; 6+ messages in thread From: Bjorn Helgaas @ 2014-09-23 22:04 UTC (permalink / raw) To: Guenter Roeck Cc: Rajat Jain, Andreas Noever, linux-kernel, linux-pci, Guenter Roeck, rajatxjain On Tue, Sep 23, 2014 at 3:55 PM, Guenter Roeck <linux@roeck-us.net> wrote: > On Mon, Sep 15, 2014 at 10:20:41PM +0000, Rajat Jain wrote: >> Hello Bjorn, >> >> I think this patch needs to be applied to all -stable branches (all the way back to 3.2). >> >> I encounter this same issue on my platform that is running 3.14.y. >> > Bjorn, > > can you send this to -stable, or is it ok if I do it ? I forgot to mention it, but I did mark it for stable, so it should happen automatically: https://git.kernel.org/cgit/linux/kernel/git/helgaas/pci.git/commit/?h=pci/hotplug&id=bceee4a97eb58bd0e80e39eff11b506ddd9e7ad3 >> > -----Original Message----- >> > From: linux-pci-owner@vger.kernel.org [mailto:linux-pci- >> > owner@vger.kernel.org] On Behalf Of Andreas Noever >> > Sent: Monday, June 09, 2014 2:04 PM >> > To: linux-kernel@vger.kernel.org; Bjorn Helgaas; linux-pci@vger.kernel.org >> > Cc: Andreas Noever >> > Subject: [PATCH] PCI: Prevent NULL dereference during pciehp probe >> > >> > 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 >> > >> > -- >> > To unsubscribe from this list: send the line "unsubscribe linux-pci" in the >> > body of a message to majordomo@vger.kernel.org More majordomo info at >> > http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] PCI: Prevent NULL dereference during pciehp probe 2014-09-23 22:04 ` Bjorn Helgaas @ 2014-09-23 22:07 ` Guenter Roeck 0 siblings, 0 replies; 6+ messages in thread From: Guenter Roeck @ 2014-09-23 22:07 UTC (permalink / raw) To: Bjorn Helgaas Cc: Rajat Jain, Andreas Noever, linux-kernel, linux-pci, Guenter Roeck, rajatxjain On Tue, Sep 23, 2014 at 04:04:42PM -0600, Bjorn Helgaas wrote: > On Tue, Sep 23, 2014 at 3:55 PM, Guenter Roeck <linux@roeck-us.net> wrote: > > On Mon, Sep 15, 2014 at 10:20:41PM +0000, Rajat Jain wrote: > >> Hello Bjorn, > >> > >> I think this patch needs to be applied to all -stable branches (all the way back to 3.2). > >> > >> I encounter this same issue on my platform that is running 3.14.y. > >> > > Bjorn, > > > > can you send this to -stable, or is it ok if I do it ? > > I forgot to mention it, but I did mark it for stable, so it should > happen automatically: > > https://git.kernel.org/cgit/linux/kernel/git/helgaas/pci.git/commit/?h=pci/hotplug&id=bceee4a97eb58bd0e80e39eff11b506ddd9e7ad3 Ah, sorry, I didn't realize that. Thanks, Guenter ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] PCI: Prevent NULL dereference during pciehp probe 2014-06-09 21:03 [PATCH] PCI: Prevent NULL dereference during pciehp probe Andreas Noever 2014-09-15 22:20 ` Rajat Jain @ 2014-09-16 21:20 ` Bjorn Helgaas 1 sibling, 0 replies; 6+ messages in thread From: Bjorn Helgaas @ 2014-09-16 21:20 UTC (permalink / raw) To: Andreas Noever; +Cc: linux-kernel, linux-pci On Mon, Jun 09, 2014 at 11:03:32PM +0200, Andreas Noever wrote: > 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> Applied to pci/hotplug for v3.18, thanks! > --- > 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 [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).