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 [EMAIL PROTECTED]
More majordomo info at http://vger.kernel.org/majordomo-info.html