From 7606e61e8c07d50a0f72ec6e9dd67b46cf4475ec Mon Sep 17 00:00:00 2001 From: Huang Ying Date: Thu, 19 Feb 2009 14:33:40 +0800 Subject: [PATCH] --- yaml --- r: 132698 b: refs/heads/master c: 25c38d3fb92fc23af7730a1601bc20af8216ae44 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/crypto/Kconfig | 3 +++ trunk/crypto/Makefile | 2 ++ trunk/crypto/crypto_wq.c | 38 ++++++++++++++++++++++++++++++++ trunk/include/crypto/crypto_wq.h | 7 ++++++ 5 files changed, 51 insertions(+), 1 deletion(-) create mode 100644 trunk/crypto/crypto_wq.c create mode 100644 trunk/include/crypto/crypto_wq.h diff --git a/[refs] b/[refs] index 997435447128..68521563f1db 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 6fe4a28d8855e072036f36ee22f0a8f43f44918f +refs/heads/master: 25c38d3fb92fc23af7730a1601bc20af8216ae44 diff --git a/trunk/crypto/Kconfig b/trunk/crypto/Kconfig index a83ce0462b6b..420b630a17cf 100644 --- a/trunk/crypto/Kconfig +++ b/trunk/crypto/Kconfig @@ -106,6 +106,9 @@ config CRYPTO_NULL help These are 'Null' algorithms, used by IPsec, which do nothing. +config CRYPTO_WORKQUEUE + tristate + config CRYPTO_CRYPTD tristate "Software async crypto daemon" select CRYPTO_BLKCIPHER diff --git a/trunk/crypto/Makefile b/trunk/crypto/Makefile index 46b08bf2035f..e05a844e08d5 100644 --- a/trunk/crypto/Makefile +++ b/trunk/crypto/Makefile @@ -5,6 +5,8 @@ obj-$(CONFIG_CRYPTO) += crypto.o crypto-objs := api.o cipher.o digest.o compress.o +obj-$(CONFIG_CRYPTO_WORKQUEUE) += crypto_wq.o + obj-$(CONFIG_CRYPTO_FIPS) += fips.o crypto_algapi-$(CONFIG_PROC_FS) += proc.o diff --git a/trunk/crypto/crypto_wq.c b/trunk/crypto/crypto_wq.c new file mode 100644 index 000000000000..fdcf6248f152 --- /dev/null +++ b/trunk/crypto/crypto_wq.c @@ -0,0 +1,38 @@ +/* + * Workqueue for crypto subsystem + * + * Copyright (c) 2009 Intel Corp. + * Author: Huang Ying + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the Free + * Software Foundation; either version 2 of the License, or (at your option) + * any later version. + * + */ + +#include +#include +#include + +struct workqueue_struct *kcrypto_wq; +EXPORT_SYMBOL_GPL(kcrypto_wq); + +static int __init crypto_wq_init(void) +{ + kcrypto_wq = create_workqueue("crypto"); + if (unlikely(!kcrypto_wq)) + return -ENOMEM; + return 0; +} + +static void __exit crypto_wq_exit(void) +{ + destroy_workqueue(kcrypto_wq); +} + +module_init(crypto_wq_init); +module_exit(crypto_wq_exit); + +MODULE_LICENSE("GPL"); +MODULE_DESCRIPTION("Workqueue for crypto subsystem"); diff --git a/trunk/include/crypto/crypto_wq.h b/trunk/include/crypto/crypto_wq.h new file mode 100644 index 000000000000..a7d252daf91b --- /dev/null +++ b/trunk/include/crypto/crypto_wq.h @@ -0,0 +1,7 @@ +#ifndef CRYPTO_WQ_H +#define CRYPTO_WQ_H + +#include + +extern struct workqueue_struct *kcrypto_wq; +#endif