i20 currently uses pci_find_parent_resource() followed by allocate_resource() to allocate PCI space. The problem is that this won't work reliably because before we allocate the space, we don't know its address, and therefore we can't find the parent resource. Even if we know the *type* of space we want, in some cases there are multiple possibilities (root buses with multiple apertures to them, prefetchable or non-prefetchable apertures, etc.) This changes it to use pci_bus_alloc_resource(), which takes care of those details. This also fixes some things that look like copy/paste errors, e.g., trying to allocate an I/O space with 1MB alignment. I don't have hardware to test these changes, but I don't think these allocation paths actually worked before, this shouldn't be any worse than what we have today. --- Bjorn Helgaas (4): i2o: Fix I/O space allocation copy/paste error i2o: Fix I/O space alignment requirement i2o: Refactor i2o_iop_systab_set() PCI space allocation i2o: Use pci_bus_alloc_resource(), not allocate_resource() directly drivers/message/i2o/iop.c | 85 ++++++++++++++++++++++----------------------- 1 file changed, 42 insertions(+), 43 deletions(-) -- 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