Hi all, I have some confusion on acpiphp_sanitize_bus() functions.If I understand wrong about this, correct me,thanks your help. I think there are three problems in this function: 1、Use list_for_each_entry here is not safe, because pci_stop_and_remove_bus_device() will remove the device from bus. 2、If assign resources fail after hot-add a device, the resource will reset to zero, in reset_resource(), res->start = 0, res->end =0, res->end = 0. 3、I think leave the fail pci devices in the system is better rather than remove them, so we can see all pci devices by lspci after hot-add, what about your opinion? thanks! Yijing. /* * Remove devices for which we could not assign resources, call * arch specific code to fix-up the bus */ static void acpiphp_sanitize_bus(struct pci_bus *bus) { struct pci_dev *dev; int i; unsigned long type_mask = IORESOURCE_IO | IORESOURCE_MEM; list_for_each_entry(dev, &bus->devices, bus_list) { for (i=0; i<PCI_BRIDGE_RESOURCES; i++) { struct resource *res = &dev->resource[i]; if ((res->flags & type_mask) && !res->start && res->end) { /* Could not assign a required resources * for this device, remove it */ pci_stop_and_remove_bus_device(dev); break; } } } } -- 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