On Thursday 14 February 2008 12:42:52 pm Linus Torvalds wrote:
On Thu, 14 Feb 2008, Bjorn Helgaas wrote:
Sorry for the delay. I did work on this, but I don't see how this can work. pcibios_init() marks its reservations as not busy, so the subsequent PNP request doesn't fail, even if it clashes.
It *shouldn't* fail.
Things should fail only when two different drivers have requested the same region. NOT when something tells the system that a region _exists_.
The sound driver doesn't fail because two different drivers have requested the same region; it fails because PNP told us a region exists, and the sound region crosses the edge of the PNP region.
You wrote earlier that:
On Tue, 5 Feb 2008, Bjorn Helgaas wrote:
- PnP/ACPI resource allocation *after* it, but before driver loading (which wll cause new resources to be allocated). This could be fs_initcall, or whatever (that's what things like "acpi_event_init" already do).
If we put the PNP system driver here, we can easily do a quirk that ignores PNP resources that overlap PCI resources.
No, you don't need any quirks: you just do an "insert_resource()" and ignore the error return. If the (bogus) PnP resource clashes with the (correct) hardware PCI resource, the insert will simply fail. No quirks needed.
I thought you were suggesting here that the PNP system driver would do an insert_resource(), and it would fail if it clashed with the PCI resource.
Can you be more explicit about how you think I should fix this?
Bjorn