Peter, I'm getting this warning from lockdep when booting on my T60. The two addresses reported (0xffffffff812664a2 and 0xffffffff812664ae) actually bracket one call to mutex_lock() in driver_attach() so I'm not sure what the complaint is. Clark ============================================= [ INFO: possible recursive locking detected ] 2.6.31-rc5-rt1.1 #37 --------------------------------------------- swapper/1 is trying to acquire lock: (&dev->mutex){+.+...}, at: [] __driver_attach+0x48/0x81 but task is already holding lock: (&dev->mutex){+.+...}, at: [] __driver_attach+0x3c/0x81 other info that might help us debug this: 1 lock held by swapper/1: #0: (&dev->mutex){+.+...}, at: [] __driver_attach+0x3c/0x81 stack backtrace: Pid: 1, comm: swapper Not tainted 2.6.31-rc5-rt1.1 #37 Call Trace: [] __lock_acquire+0x14ae/0x153c [] ? __driver_attach+0x48/0x81 [] lock_acquire+0xfd/0x129 [] ? __driver_attach+0x48/0x81 [] _mutex_lock+0x31/0x40 [] ? __driver_attach+0x48/0x81 [] __driver_attach+0x48/0x81 [] ? __driver_attach+0x0/0x81 [] bus_for_each_dev+0x59/0x8e [] driver_attach+0x1e/0x20 [] bus_add_driver+0x13f/0x288 [] driver_register+0x9d/0x10e [] acpi_bus_register_driver+0x43/0x45 [] acpi_ec_init+0x37/0x55 [] acpi_init+0x224/0x265 [] ? acpi_init+0x0/0x265 [] do_one_initcall+0x75/0x18a [] ? put_lock_stats+0xe/0x27 [] ? rt_spin_unlock+0x23/0x6d [] ? get_lock_stats+0x16/0x4a [] ? get_lock_stats+0x16/0x4a [] ? proc_register+0x18c/0x1a2 [] ? sub_preempt_count+0x35/0x49 [] ? put_lock_stats+0xe/0x27 [] ? lock_release_holdtime+0xf9/0xfe [] ? rt_spin_unlock+0x23/0x6d [] ? proc_register+0x18c/0x1a2 [] ? create_proc_entry+0x79/0x91 [] ? register_irq_proc+0xb3/0xcf [] ? pde_users_dec+0x20/0x45 [] kernel_init+0x17e/0x28b [] child_rip+0xa/0x20 [] ? restore_args+0x0/0x30 [] ? kernel_init+0x0/0x28b [] ? child_rip+0x0/0x20 --------------------------- | preempt count: 00000000 ] | 0-level deep critical section nesting: ----------------------------------------