On Wed, Sep 17, 2014 at 12:46:24AM -0700, Yinghai Lu wrote: > On Tue, Sep 16, 2014 at 3:27 PM, Yinghai Lu <yinghai@xxxxxxxxxx> wrote: > > On Tue, Sep 16, 2014 at 1:21 PM, Joseph Salisbury > > <joseph.salisbury@xxxxxxxxxxxxx> wrote: > >> > >> A new bug[0] was opened due to enabling PCI_REALLOC_ENABLE_AUTO, which > >> is similar to the original bug[1] we discussed. > >> > >> Just wondering if there have been any additional ideas on realloc since > >> this was last discussed? > >> > >> [0] http://pad.lv/1363313 > > > > So the resource realloc do work as expected. but LSI firmware has some > > problem again? > > > > We may need to add command after the reset the bridge resource. > > Can you try attached patch? This sitting in patchwork, but I'm dropping it because there's no changelog or signed-off-by. I don't think the underlying bug has been resolved, though. Bjorn > --- > drivers/pci/setup-bus.c | 16 ++++++++++++++++ > 1 file changed, 16 insertions(+) > > Index: linux-2.6/drivers/pci/setup-bus.c > =================================================================== > --- linux-2.6.orig/drivers/pci/setup-bus.c > +++ linux-2.6/drivers/pci/setup-bus.c > @@ -1615,6 +1615,22 @@ again: > fail_res->flags & type_mask, > rel_type); > > + /* reset LSI device */ > + list_for_each_entry(fail_res, &fail_head, list) { > + struct pci_dev *pdev; > + struct pci_bus *pbus = fail_res->dev->bus; > + > + if (pci_is_root_bus(pbus) || !pbus->self) > + continue; > + > + /* LSI device firmware is not happy with changing BAR value */ > + list_for_each_entry(pdev, &pbus->devices, bus_list) > + if (pdev->vendor == PCI_VENDOR_ID_LSI_LOGIC) { > + pci_reset_secondary_bus(pbus->self); > + break; > + } > + } > + > /* restore size and flags */ > list_for_each_entry(fail_res, &fail_head, list) { > struct resource *res = fail_res->res; -- To unsubscribe from this list: send the line "unsubscribe stable" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html