Messages in this thread Patch in this message | | | Date | Mon, 14 Apr 2008 20:18:01 +0530 | From | Gautham R Shenoy <> | Subject | Re: 2.6.25-rc9 -- INFO: possible circular locking dependency detected |
| |
On Mon, Apr 14, 2008 at 02:42:27PM +0200, Peter Zijlstra wrote: > > void __init cpu_hotplug_init(void) > { > +#ifdef CONFIG_DEBUG_LOCK_ALLOC > + static struct lockdep_class_key __key; ^^^^^^^^^^^^^^^^^ should be lock_class_key.
> + > + lockdep_init_map(&cpu_hotplug.dep_map, "cpu_hotplug", &__key, 0); > +#endif > cpu_hotplug.active_writer = NULL; > spin_lock_init(&cpu_hotplug.lock); > cpu_hotplug.refcount = 0; > @@ -54,6 +62,8 @@ void get_online_cpus(void) > { > might_sleep(); > > + cpu_hotplug_acquire_read(&cpu_hotplug.dep_map, 0, 0, _THIS_IP_); > + > spin_lock(&cpu_hotplug.lock); > if (cpu_hotplug.active_writer == current) > goto unlock; > @@ -80,6 +90,8 @@ EXPORT_SYMBOL_GPL(get_online_cpus); > > void put_online_cpus(void) > { > + cpu_hotplug_release(&cpu_hotplug.lock, 1, _THIS_IP_); > + > spin_lock(&cpu_hotplug.lock); > if (cpu_hotplug.active_writer == current) > goto unlock; > @@ -119,6 +131,8 @@ static void cpu_hotplug_begin(void) > { > might_sleep(); > > + cpu_hotplug_acquire(&cpu_hotplug.dep_map, 0, 0, _THIS_IP_); > + > spin_lock(&cpu_hotplug.lock); > if (cpu_hotplug.refcount || cpu_hotplug.active_writer) { > DEFINE_WAIT(wait); > @@ -140,6 +154,8 @@ static void cpu_hotplug_begin(void) > > static void cpu_hotplug_done(void) > { > + cpu_hotplug_release(&cpu_hotplug.lock, 1, _THIS_IP_); > + > spin_lock(&cpu_hotplug.lock); > cpu_hotplug.active_writer = NULL; > if (!list_empty(&cpu_hotplug.writer_queue.task_list)) >
-- Thanks and Regards gautham
| |