On Friday, December 14, 2012 05:56:46 PM Yijing Wang wrote: > On 2012/12/14 6:15, Rafael J. Wysocki wrote: > > Hi All, > > > > On Sunday, December 09, 2012 11:58:42 PM Rafael J. Wysocki wrote: > >> Hi, > >> > >> The following patches change the ordering of the ACPI namespace scanning code > >> so that all struct acpi_device objects in the given scope are registered before > >> ACPI drivers are probed against them. They also do some simplifications and > >> clarifications of the code made possible by this main change. > >> > >> This is done for three basic reasons. First, we need the boot ACPI namespace > >> scanning code to be as similar as reasonably possible to the hot-plug ACPI > >> namespace scanning code. Second, the ordering of PCI devices enumeration > >> versus ACPI-backed platform devices registration needs to be such that the PCI > >> devices in the given scope are all registered first. Finally, when we start to > >> actually manage ACPI device resources as appropriate (e.g. resolve resource > >> conflicts properly) we'll need all struct acpi_device nodes to be registered > >> before any "companion" physical nodes or ACPI drivers are bound to them. > >> > >> The patches have been tested on Toshiba Portege R500 without breaking stuff > >> (I used some additional debug code to verify that the ordering of device > >> discovery had not been modified by them), but if you see any problems with > >> them regarding hot-plug, please let me know. > >> > >> [1/6] - Separate adding ACPI device objects from probing ACPI drivers. > >> [2/6] - Change the ordering of PCI root bridge driver registration. > >> [3/6] - Make acpi_bus_add() and acpi_bus_start() visibly different. > >> [4/6] - Reduce the usage of struct acpi_bus_ops > >> [5/6] - Replace struct acpi_bus_ops with an enum type > >> [6/6] - Change the ordering of acpi_bus_check_add() to avoid unnecessary checks. > > > > The second revision is necessary to address problems found by Yijing Wang > > during testing and explained by Jiang Liu (thanks guys!). > > > > The problem is that acpi_walk_namespace() doesn't execute the pre_order_visit > > callback for the starting handle, so the callback routine has the be executed > > for it directly, if necessary. > > > > I also modified a couple of changelogs to better explain the motivation of the > > patches. > > > > Boot sequence tested on Toshiba Portege R500, but testing on systems with > > hotplug will be appreciated. > > Hi rafael, > I tested this version patchset in my ia64 hotplug machine, and the result looks ok. Great, thanks a lot for testing! Rafael -- I speak only for myself. Rafael J. Wysocki, Intel Open Source Technology Center. -- 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