summaryrefslogtreecommitdiffstats
path: root/crypto
diff options
context:
space:
mode:
authorSteffen Klassert <steffen.klassert@secunet.com>2010-07-20 08:52:20 +0200
committerHerbert Xu <herbert@gondor.apana.org.au>2010-07-26 14:13:59 +0800
commitcc74f4bc111e9554bcd6445ad0fe1d90e5d2eb34 (patch)
tree9848a74caacea30210ed680362fe8ee0aec51a69 /crypto
parent7424713b83587006da72da84d7922471e366faba (diff)
downloadlinux-stable-cc74f4bc111e9554bcd6445ad0fe1d90e5d2eb34.tar.gz
linux-stable-cc74f4bc111e9554bcd6445ad0fe1d90e5d2eb34.tar.bz2
linux-stable-cc74f4bc111e9554bcd6445ad0fe1d90e5d2eb34.zip
crypto: pcrypt - Dont calulate a callback cpu on empty callback cpumask
If the callback cpumask is empty, we crash with a division by zero when we try to calculate a callback cpu. So we don't update the callback cpu in pcrypt_do_parallel if the callback cpumask is empty. Signed-off-by: Steffen Klassert <steffen.klassert@secunet.com> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Diffstat (limited to 'crypto')
-rw-r--r--crypto/pcrypt.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/crypto/pcrypt.c b/crypto/pcrypt.c
index 7153a50bce27..794c172b99f7 100644
--- a/crypto/pcrypt.c
+++ b/crypto/pcrypt.c
@@ -82,6 +82,9 @@ static int pcrypt_do_parallel(struct padata_priv *padata, unsigned int *cb_cpu,
if (cpumask_test_cpu(cpu, cpumask->mask))
goto out;
+ if (!cpumask_weight(cpumask->mask))
+ goto out;
+
cpu_index = cpu % cpumask_weight(cpumask->mask);
cpu = cpumask_first(cpumask->mask);