During system init, acpi_pci_root_add() is called which uses ACPI information to reserve memory and IO regions for PCI devices under the root bridge. If I hot remove a device, by echo'ing 1 into its remove file, and then rescanning the parent bus (in this case the same bridge discovered by acpi_pci_root_add()) by echo'ing 1 into the rescan file, the code path calls unsigned int pci_rescan_bus(struct pci_bus *bus) { unsigned int max; max = pci_scan_child_bus(bus); pci_assign_unassigned_bus_resources(bus); pci_bus_add_devices(bus); return max; } which AFAICT does not take into account ACPI Memory and IO regions for devices under the bridge. Is there an obvious reason to do this? Or is there some other init required before I issue the rescan on the bus? Or ... is this a bug? FWIW, I am removing a PCI Serial port card by echo'ing 1 into its remove file and then reinserting it by doing a rescan on the parent bus. The card does not come up with the same memory & IO as it initially had. I would have expected that it did come up with the same resources as the memory & IO are free... but maybe that expectation is incorrect. P. P. -- 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