summaryrefslogtreecommitdiffstats
path: root/kernel
diff options
context:
space:
mode:
authorSteffen Klassert <steffen.klassert@secunet.com>2012-03-28 08:44:07 +0200
committerHerbert Xu <herbert@gondor.apana.org.au>2012-03-29 13:52:46 +0200
commit9612090527526a15832480c48b1f4b39e93e8a35 (patch)
treed34a4459c33251ed9dbcb395eb41dce790b9b75e /kernel
parentpadata: Use the online cpumask as the default (diff)
downloadlinux-9612090527526a15832480c48b1f4b39e93e8a35.tar.xz
linux-9612090527526a15832480c48b1f4b39e93e8a35.zip
padata: Fix cpu hotplug
We don't remove the cpu that went offline from our cpumasks on cpu hotplug. This got lost somewhere along the line, so restore it. This fixes a hang of the padata instance on cpu hotplug. Signed-off-by: Steffen Klassert <steffen.klassert@secunet.com> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Diffstat (limited to 'kernel')
-rw-r--r--kernel/padata.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/kernel/padata.c b/kernel/padata.c
index de3d0d97800a..89fe3d1b9efb 100644
--- a/kernel/padata.c
+++ b/kernel/padata.c
@@ -748,6 +748,9 @@ static int __padata_remove_cpu(struct padata_instance *pinst, int cpu)
return -ENOMEM;
padata_replace(pinst, pd);
+
+ cpumask_clear_cpu(cpu, pd->cpumask.cbcpu);
+ cpumask_clear_cpu(cpu, pd->cpumask.pcpu);
}
return 0;