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 24c31efde88264d45a0523908ff48f25e7be1a2d..4a3e6b22518947fb4093b36805a0592a772b3173 100644 (file)
@@ -56,6 +56,7 @@ config CRYPTO_BLKCIPHER2
        tristate
        select CRYPTO_ALGAPI2
        select CRYPTO_RNG2
+       select CRYPTO_WORKQUEUE
 
 config CRYPTO_HASH
        tristate
index 7c37a497b860a27733eac07c4f7ff018c0abb4a3..ba200b07449d259cebf846a43e3f768e335606ef 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: