> -----Original Message----- > From: linux-pci-owner@xxxxxxxxxxxxxxx [mailto:linux-pci- > owner@xxxxxxxxxxxxxxx] On Behalf Of Iyer, Shyam > Sent: Friday, September 09, 2011 6:48 PM > To: mason@xxxxxxxx; shyam.iyer.t@xxxxxxxxx > Cc: linux-pci@xxxxxxxxxxxxxxx; sgruszka@xxxxxxxxxx; > jbarnes@xxxxxxxxxxxxxxxx > Subject: RE: [PATCH] [pci][v2] Fix pointer dereference before call to > pcie_bus_configure_settings > > > > > -----Original Message----- > > From: Jon Mason [mailto:mason@xxxxxxxx] > > Sent: Thursday, September 08, 2011 1:37 PM > > To: Shyam Iyer > > Cc: linux-pci@xxxxxxxxxxxxxxx; sgruszka@xxxxxxxxxx; > > jbarnes@xxxxxxxxxxxxxxxx; Iyer, Shyam > > Subject: Re: [PATCH] [pci][v2] Fix pointer dereference before call to > > pcie_bus_configure_settings > > > > On Wed, Aug 31, 2011 at 9:21 AM, Shyam Iyer <shyam.iyer.t@xxxxxxxxx> > > wrote: > > > Commit b03e7495a862b028294f59fc87286d6d78ee7fa1 introduces a few > > issues by dereferencing bus->self in the call to > > pcie_bus_configure_settings. > > > > > > This fixes it by checking existence of bus->self before > dereferencing > > it. > > > > > > Reported-by: Stanislaw Gruszka <sgruszka@xxxxxxxxxx> > > > Signed-off-by: Shyam Iyer <shyam_iyer@xxxxxxxx> > > > --- > > > arch/x86/pci/acpi.c | 9 +++++++-- > > > drivers/pci/hotplug/pcihp_slot.c | 4 +++- > > > drivers/pci/probe.c | 3 --- > > > 3 files changed, 10 insertions(+), 6 deletions(-) > > > > > > diff --git a/arch/x86/pci/acpi.c b/arch/x86/pci/acpi.c > > > index c953302..86bf435 100644 > > > --- a/arch/x86/pci/acpi.c > > > +++ b/arch/x86/pci/acpi.c > > > @@ -365,8 +365,13 @@ struct pci_bus * __devinit > > pci_acpi_scan_root(struct acpi_pci_root *root) > > > */ > > > if (bus) { > > > struct pci_bus *child; > > > - list_for_each_entry(child, &bus->children, node) > > > - pcie_bus_configure_settings(child, child- > > >self->pcie_mpss); > > > + list_for_each_entry(child, &bus->children, node) { > > > + struct pci_bus *self = child->self; > > > > This doesn't compile. I believe you want pci_dev not pci_bus. > > > > I'll roll in that change and push it with my MRRS fix to Linus > > shortly, as I believe this bug fix should make it into 3.1. > > > > Thanks, > > Jon > > Did this resolve ? I saw you submit the same patch to linus.. > > I guess I am confused right now.. Never mind ignore this email. I see the issue you were talking about.. > > > > > + if (!self) > > > + continue; > > > + > > > + pcie_bus_configure_settings(child, self- > > >pcie_mpss); > > > + } > > > } > > > > > > if (!bus) > > > diff --git a/drivers/pci/hotplug/pcihp_slot.c > > b/drivers/pci/hotplug/pcihp_slot.c > > > index 753b21a..3ffd9c1 100644 > > > --- a/drivers/pci/hotplug/pcihp_slot.c > > > +++ b/drivers/pci/hotplug/pcihp_slot.c > > > @@ -169,7 +169,9 @@ void pci_configure_slot(struct pci_dev *dev) > > > (dev->class >> 8) == PCI_CLASS_BRIDGE_PCI))) > > > return; > > > > > > - pcie_bus_configure_settings(dev->bus, dev->bus->self- > > >pcie_mpss); > > > + if (dev->bus && dev->bus->self) > > > + pcie_bus_configure_settings(dev->bus, > > > + dev->bus->self- > > >pcie_mpss); > > > > > > memset(&hpp, 0, sizeof(hpp)); > > > ret = pci_get_hp_params(dev, &hpp); > > > diff --git a/drivers/pci/probe.c b/drivers/pci/probe.c > > > index 8473727..0820fc1 100644 > > > --- a/drivers/pci/probe.c > > > +++ b/drivers/pci/probe.c > > > @@ -1456,9 +1456,6 @@ void pcie_bus_configure_settings(struct > pci_bus > > *bus, u8 mpss) > > > { > > > u8 smpss = mpss; > > > > > > - if (!bus->self) > > > - return; > > > - > > > if (!pci_is_pcie(bus->self)) > > > return; > > > > > > -- > > > 1.7.2.3 > > > > > > -- > > > To unsubscribe from this list: send the line "unsubscribe linux- > pci" > > in > > > the body of a message to majordomo@xxxxxxxxxxxxxxx > > > More majordomo info at http://vger.kernel.org/majordomo-info.html > > > > -- > To unsubscribe from this list: send the line "unsubscribe linux-pci" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html -- To unsubscribe from this list: send the line "unsubscribe linux-pci" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html