On Wednesday 31 January 2007 20:58, Zhang Rui wrote: > On Wed, 2007-01-31 at 10:11 -0600, John Keller wrote: > > Len, > > When building kernels from your ACPI release or test trees, > > as well as the -mm tree, SN Altix boots are crashing in the > > kobject code when calling acpi_bus_register_driver(). > > The crash is because kset->list has not been initialized yet. > > > > kobject_add() > > list_add_tail(&kobj->entry,&kobj->kset->list); > > > > > > Is there now a restriction on how early acpi_bus_register_driver() > > can be called? If so, at what point in time can calls be made, > > and is it still possible to register a driver early enough such > > that it will be called at device discovery time vs registration time? > > > Yes, this is caused by the recent ACPI sysfs conversion changes. > Now we make ACPI use driver model. > All the ACPI drivers should register after the ACPI bus has registered, > i.e. we can not call acpi_bus_register_driver() before acpi_scan_init() > in drivers/acpi/scan.c. John, Below is the order of the linux driver model universe. acpi_bus_register_driver is safe to call after subsys_initcall(), ie. at device_initcall() time. Do you need to be earlier than that, and if so, why? thanks, -Len #define core_initcall(fn) __define_initcall("1",fn,1) #define core_initcall_sync(fn) __define_initcall("1s",fn,1s) #define postcore_initcall(fn) __define_initcall("2",fn,2) #define postcore_initcall_sync(fn) __define_initcall("2s",fn,2s) #define arch_initcall(fn) __define_initcall("3",fn,3) #define arch_initcall_sync(fn) __define_initcall("3s",fn,3s) #define subsys_initcall(fn) __define_initcall("4",fn,4) #define subsys_initcall_sync(fn) __define_initcall("4s",fn,4s) #define fs_initcall(fn) __define_initcall("5",fn,5) #define fs_initcall_sync(fn) __define_initcall("5s",fn,5s) #define rootfs_initcall(fn) __define_initcall("rootfs",fn,rootfs) #define device_initcall(fn) __define_initcall("6",fn,6) #define device_initcall_sync(fn) __define_initcall("6s",fn,6s) #define late_initcall(fn) __define_initcall("7",fn,7) #define late_initcall_sync(fn) __define_initcall("7s",fn,7s) - 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