On Tuesday, December 31, 2013 10:45:46 AM Yinghai Lu wrote: > On Mon, Dec 30, 2013 at 5:15 AM, Rafael J. Wysocki <rjw@xxxxxxxxxxxxx> wrote: > > On Monday, December 30, 2013 01:51:28 PM Rafael J. Wysocki wrote: > >> > We have patches that need to stop ioapic and iommu between > >> > pci_stop_root_bus and pci_remove_root_bus. > > > > BTW, what *exactly* do they need to be stopped between? After these two patches: > > need to stop regular pci drivers before stop "driver" for ioapic/dmar. > > > > >> > Please check if the problem still happen after > >> > > >> > http://git.kernel.org/cgit/linux/kernel/git/helgaas/pci.git/patch/?id=c4a0a5d964e90b93eb4101c3927b788e083e530f > >> > > >> > http://git.kernel.org/cgit/linux/kernel/git/helgaas/pci.git/patch/?id=e3b439e1d315aff59c1b4f0fc43c5cd2d82b4138 > > > > pci_stop_root_bus() is just a walk over devices on the root bus stopping > > them and pci_remove_root_bus() starts with the removal of those devices. > > > > Surely, those two list walks can be combined into one? > > maybe ok, but we have to problem to make sure stop pci drivers before > "driver" for ioapic/dmar. That's fine, but ioapic/dmar stopping need not happen between the stopping of drivers and removing of devices on the root bus I suppose? Actually, I think that the ioapic/dmar stopping should be carried out after removing all of the root bus devices, or it can be racy with respect to a driver reload. Isn't that the case? > also stop all first and remove all make it much cleaner. Well, I don't think that's worth special casing, though, because device removal may be triggered via sysfs anyway for any PCI device. In my opinion it would be cleaner to use pci_stop_and_remove_bus_device() everywhere for PCI device removal. > and add path is two steps too. Add them all, and then attach driver for all. The removal need not mirror the probing ... Thanks, Rafael -- To unsubscribe from this list: send the line "unsubscribe linux-acpi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html