On 9/3/2011 8:40 AM, Bjorn Helgaas wrote:
This thread sort of petered out, but I don't think we changed
anything, and I think we still have a problem. If so, I'd like to
capture it in a bugzilla so we don't forget about it.
I think the problem is that a driver (pci-stub or any other driver)
can't use request_mem_region() on a device BAR if that BAR happens to
conflict with an E820 reserved area.
From Maxim's case, we have this:
BIOS-e820: 00000000fa000000 - 00000000fc000000 (reserved)
pci_root PNP0A08:00: host bridge window [mem 0xf0000000-0xfebfffff]
pci 0000:00:1c.0: PCI bridge to [bus 05-05]
pci 0000:00:1c.0: bridge window [mem 0xf0000000-0xfbffffff 64bit
pref]
pci 0000:05:00.0: reg 14: [mem 0xf0000000-0xf7ffffff 64bit pref]
pci 0000:05:00.0: reg 1c: [mem 0xf8000000-0xfbffffff 64bit pref]
pci-stub 0000:05:00.0: BAR 3: can't reserve [mem
0xf8000000-0xfbffffff 64bit pref]
and the iomem_resource tree looks like this:
f0000000-febfffff : PCI Bus 0000:00
f0000000-fbffffff : PCI Bus 0000:05
f0000000-f7ffffff : 0000:05:00.0
f8000000-fbffffff : 0000:05:00.0
fa000000-fbffffff : reserved
The fa000000-fbffffff reserved area (from E820) doesn't cause us to
move the 05:00.0 BAR at 0xf8000000, but it does prevent us from
requesting that region in a driver. I think this is a bug.
Maxim, if you agree that this is still a problem, would you mind
opening a report at http://bugzilla.kernel.org? You can put it under
Drivers/PCI and CC me if you like.
Thanks,
Bjorn
Hello Bjorn,
This is still a problem although I have immediate workaround to solve
it. We are interested in having it fixed in upstream. I've created a
report here https://bugzilla.kernel.org/show_bug.cgi?id=42552.
Thank you for your help
Regards,
Maxim
--
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