Skip to contentSkip to conversation

cpuset: lock vs unlock typo

PATCH In review Dan Carpenter 2 participants 2 messages Oct 27, 2014

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 cpuset: lock vs unlock typo

This will deadlock instead of unlocking.

Fixes f73eae8d8384 ('cpuset: simplify cpuset_node_allowed API')
kernel/cpuset.c +1 -1
index 38f7433..4eaa203 100644
@@ -1992,7 +1992,7 @@ static int cpuset_css_online(struct cgroup_subsys_state *css)
 	spin_lock_irq(&callback_lock);
 	cs->mems_allowed = parent->mems_allowed;
 	cpumask_copy(cs->cpus_allowed, parent->cpus_allowed);
-	spin_lock_irq(&callback_lock);
+	spin_unlock_irq(&callback_lock);
 out_unlock:
 	mutex_unlock(&cpuset_mutex);
 	return 0;
Acked-by on v1 1/1
#1 lore raw
Quoted 4 lines · Dan Carpenter

This will deadlock instead of unlocking.

Fixes f73eae8d8384 ('cpuset: simplify cpuset_node_allowed API')

Shame on me. It strikes only if cgroup.clone_children is set, so I didn't catch it while testing the patch :-(

Thank you!

Quoted 14 lines
kernel/cpuset.c +1 -1
index 38f7433..4eaa203 100644
@@ -1992,7 +1992,7 @@ static int cpuset_css_online(struct cgroup_subsys_state *css)
 	spin_lock_irq(&callback_lock);
 	cs->mems_allowed = parent->mems_allowed;
 	cpumask_copy(cs->cpus_allowed, parent->cpus_allowed);
-	spin_lock_irq(&callback_lock);
+	spin_unlock_irq(&callback_lock);
 out_unlock:
 	mutex_unlock(&cpuset_mutex);
 	return 0;