crypto: chainiv - Use kcrypto_wq instead of keventd_wq
authorHuang Ying <ying.huang@intel.com>
Thu, 19 Feb 2009 06:44:02 +0000 (14:44 +0800)
committerHerbert Xu <herbert@gondor.apana.org.au>
Thu, 19 Feb 2009 06:44:02 +0000 (14:44 +0800)
keventd_wq has potential starvation problem, so use dedicated
kcrypto_wq instead.

Signed-off-by: Huang Ying <ying.huang@intel.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
crypto/Kconfig
crypto/chainiv.c

index 24c31ef..4a3e6b2 100644 (file)
@@ -56,6 +56,7 @@ config CRYPTO_BLKCIPHER2
        tristate
        select CRYPTO_ALGAPI2
        select CRYPTO_RNG2
+       select CRYPTO_WORKQUEUE
 
 config CRYPTO_HASH
        tristate
index 7c37a49..ba200b0 100644 (file)
@@ -15,6 +15,7 @@
 
 #include <crypto/internal/skcipher.h>
 #include <crypto/rng.h>
+#include <crypto/crypto_wq.h>
 #include <linux/err.h>
 #include <linux/init.h>
 #include <linux/kernel.h>
@@ -133,7 +134,7 @@ static int async_chainiv_schedule_work(struct async_chainiv_ctx *ctx)
                        goto out;
        }
 
-       queued = schedule_work(&ctx->postponed);
+       queued = queue_work(kcrypto_wq, &ctx->postponed);
        BUG_ON(!queued);
 
 out: