Message ID | 20150312173533.1052.46464.stgit@bhelgaas-glaptop2.roam.corp.google.com (mailing list archive) |
---|---|
State | Not Applicable, archived |
Headers | show |
On Thu, Mar 12, 2015 at 10:35 AM, Bjorn Helgaas <bhelgaas@google.com> wrote: > If a BAR is not inside any upstream bridge window, or if it conflicts with > another resource, mark it as IORESOURCE_UNSET so we don't try to use it. > We may be able to assign a different address for it. This went into Linux tree - and broke my ia64 box in a weird way. It only sees one of the two disks. git bisect points to this commit, and reverting it fixes the problem. Attached are serial logs from the "bad" boot (tip of Linus tree = b79013b2449c) and for a "good" boot with this commit reverted. -Tony
Hi Tony, On Tue, Apr 14, 2015 at 6:14 PM, Tony Luck <tony.luck@gmail.com> wrote: > On Thu, Mar 12, 2015 at 10:35 AM, Bjorn Helgaas <bhelgaas@google.com> wrote: >> If a BAR is not inside any upstream bridge window, or if it conflicts with >> another resource, mark it as IORESOURCE_UNSET so we don't try to use it. >> We may be able to assign a different address for it. > > This went into Linux tree - and broke my ia64 box in a weird way. It only > sees one of the two disks. git bisect points to this commit, and reverting > it fixes the problem. > > Attached are serial logs from the "bad" boot (tip of Linus tree = b79013b2449c) > and for a "good" boot with this commit reverted. Thanks for the report, and sorry for breaking you. I hate to ask for more after all your work already, but would you mind collecting logs with "ignore_loglevel"? We only print the BAR information at KERN_DEBUG, so it doesn't make it to the console unless you use ignore_loglevel. I don't really see how the mptsas device at 83:00.0 worked before; ACPI didn't tell us about any MMIO apertures in the PCI1 host bridge. But I'll look closer. Bjorn -- To unsubscribe from this list: send the line "unsubscribe linux-acpi" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/drivers/pci/setup-res.c b/drivers/pci/setup-res.c index b7c3a5ea1fca..232f9254c11a 100644 --- a/drivers/pci/setup-res.c +++ b/drivers/pci/setup-res.c @@ -120,6 +120,7 @@ int pci_claim_resource(struct pci_dev *dev, int resource) if (!root) { dev_info(&dev->dev, "can't claim BAR %d %pR: no compatible bridge window\n", resource, res); + res->flags |= IORESOURCE_UNSET; return -EINVAL; } @@ -127,6 +128,7 @@ int pci_claim_resource(struct pci_dev *dev, int resource) if (conflict) { dev_info(&dev->dev, "can't claim BAR %d %pR: address conflict with %s %pR\n", resource, res, conflict->name, conflict); + res->flags |= IORESOURCE_UNSET; return -EBUSY; }
If a BAR is not inside any upstream bridge window, or if it conflicts with another resource, mark it as IORESOURCE_UNSET so we don't try to use it. We may be able to assign a different address for it. Signed-off-by: Bjorn Helgaas <bhelgaas@google.com> --- drivers/pci/setup-res.c | 2 ++ 1 file changed, 2 insertions(+) -- To unsubscribe from this list: send the line "unsubscribe linux-acpi" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html