From: "Youquan,Song" <youquan.song@linux.intel.com>
To: Herbert Xu <herbert@gondor.apana.org.au>
Cc: "Youquan,Song" <youquan.song@linux.intel.com>,
linux-kernel@vger.kernel.org, ying.huang@intel.com,
kent.liu@intel.com, youquan.song@intel.com
Subject: Re: [PATCH]crypto: Fix complain about lack test for internal used algorithm
Date: Sat, 19 Dec 2009 04:40:43 -0500 [thread overview]
Message-ID: <20091219094043.GA23639@youquan-linux.bj.intel.com> (raw)
In-Reply-To: <20091211060448.GA28704@gondor.apana.org.au>
> On Fri, Dec 11, 2009 at 08:23:21AM -0500, Youquan,Song wrote:
> > When load aesni-intel and ghash_clmulni-intel driver,kernel will complain no
> > test for some internal used algorithm.
> > The strange information as following:
> >
> > alg: No test for __aes-aesni (__driver-aes-aesni)
> > alg: No test for __ecb-aes-aesni (__driver-ecb-aes-aesni)
> > alg: No test for __cbc-aes-aesni (__driver-cbc-aes-aesni)
> > alg: No test for __ecb-aes-aesni (cryptd(__driver-ecb-aes-aesni)
> > alg: No test for __ghash (__ghash-pclmulqdqni)
> > alg: No test for __ghash (cryptd(__ghash-pclmulqdqni))
>
> I'd prefer to just add nul testmgr entries for these algorithms.
Hi Herbert,
Do you like the following modification to the patch?
If yes, I will resend the patch.
Thanks
-Youquan
---
diff --git a/crypto/algapi.c b/crypto/algapi.c
index a03ebcb..a602223 100644
--- a/crypto/algapi.c
+++ b/crypto/algapi.c
@@ -18,6 +18,7 @@
#include <linux/module.h>
#include <linux/rtnetlink.h>
#include <linux/string.h>
+#include <crypto/cryptd.h>
#include "internal.h"
@@ -243,6 +244,32 @@ err:
goto out;
}
+int crypto_is_internal(const char *driver)
+{
+ struct crypto_alg *q;
+ int found = 0;
+
+ list_for_each_entry(q, &crypto_alg_list, cra_list) {
+ if (!strcmp(q->cra_driver_name, driver)) {
+ found = 1;
+ break;
+ }
+ }
+
+ if (found) {
+
+ if (q->cra_priority == 0)
+ return 1;
+ if (q->cra_priority == CRYPTD_PRIORITY_ADDITION &&
+ strstr(q->cra_driver_name, "cryptd"))
+ return 1;
+ }
+
+ return 0;
+
+}
+EXPORT_SYMBOL_GPL(crypto_is_internal);
+
void crypto_alg_tested(const char *name, int err)
{
struct crypto_larval *test;
diff --git a/crypto/cryptd.c b/crypto/cryptd.c
index f8ae0d9..79785b7 100644
--- a/crypto/cryptd.c
+++ b/crypto/cryptd.c
@@ -275,7 +275,7 @@ static void *cryptd_alloc_instance(struct crypto_alg *alg, unsigned int head,
memcpy(inst->alg.cra_name, alg->cra_name, CRYPTO_MAX_ALG_NAME);
- inst->alg.cra_priority = alg->cra_priority + 50;
+ inst->alg.cra_priority = alg->cra_priority + CRYPTD_PRIORITY_ADDITION;
inst->alg.cra_blocksize = alg->cra_blocksize;
inst->alg.cra_alignmask = alg->cra_alignmask;
diff --git a/crypto/internal.h b/crypto/internal.h
index 2d22636..23b6498 100644
--- a/crypto/internal.h
+++ b/crypto/internal.h
@@ -101,6 +101,8 @@ int crypto_register_notifier(struct notifier_block *nb);
int crypto_unregister_notifier(struct notifier_block *nb);
int crypto_probing_notify(unsigned long val, void *v);
+int crypto_is_internal(const char *driver);
+
static inline void crypto_alg_put(struct crypto_alg *alg)
{
if (atomic_dec_and_test(&alg->cra_refcnt) && alg->cra_destroy)
diff --git a/crypto/testmgr.c b/crypto/testmgr.c
index f70ce52..0de1ef4 100644
--- a/crypto/testmgr.c
+++ b/crypto/testmgr.c
@@ -1316,6 +1316,12 @@ out:
return err;
}
+static int alg_test_null(const struct alg_test_desc *desc,
+ const char *driver, u32 type, u32 mask)
+{
+ return 0;
+}
+
static int alg_test_skcipher(const struct alg_test_desc *desc,
const char *driver, u32 type, u32 mask)
{
@@ -2086,6 +2092,15 @@ static const struct alg_test_desc alg_test_descs[] = {
}
}
}, {
+ .alg = "null",
+ .test = alg_test_null,
+ .suite = {
+ .hash = {
+ .vecs = NULL,
+ .count = 0
+ }
+ }
+ }, {
.alg = "pcbc(fcrypt)",
.test = alg_test_skcipher,
.suite = {
@@ -2365,6 +2380,15 @@ int alg_test(const char *driver, const char *alg, u32 type, u32 mask)
int j;
int rc;
+ if (crypto_is_internal(driver)) {
+ i = alg_find_test("null");
+ if (i < 0)
+ goto notest;
+ rc = alg_test_descs[i].test(alg_test_descs + i, "null",
+ type, mask);
+ goto test_done;
+
+ }
if ((type & CRYPTO_ALG_TYPE_MASK) == CRYPTO_ALG_TYPE_CIPHER) {
char nalg[CRYPTO_MAX_ALG_NAME];
diff --git a/include/crypto/cryptd.h b/include/crypto/cryptd.h
index 1c96b25..50cd473 100644
--- a/include/crypto/cryptd.h
+++ b/include/crypto/cryptd.h
@@ -9,6 +9,8 @@
#include <linux/kernel.h>
#include <crypto/hash.h>
+#define CRYPTD_PRIORITY_ADDITION 50
+
struct cryptd_ablkcipher {
struct crypto_ablkcipher base;
};
next prev parent reply other threads:[~2009-12-19 2:05 UTC|newest]
Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-12-09 13:49 [PATCH 0/3] gpiolib: gpio naming in sysfs Jani Nikula
2009-12-09 13:49 ` [PATCH 1/3] device class: add symlink creation helpers Jani Nikula
2009-12-10 2:49 ` Greg KH
2009-12-09 13:49 ` [PATCH 2/3] gpiolib: add support for having symlinks under gpio class directory Jani Nikula
2009-12-10 2:48 ` Greg KH
2009-12-10 14:32 ` Jani Nikula
2009-12-10 14:49 ` Greg KH
2009-12-10 15:17 ` Kay Sievers
2009-12-10 15:24 ` Greg KH
2009-12-11 8:41 ` Jani Nikula
2009-12-11 15:38 ` Greg KH
2009-12-11 3:35 ` David Brownell
2009-12-09 13:49 ` [PATCH 3/3] gpiolib: use chip->names for symlinks, always use gpioN for device names Jani Nikula
2009-12-11 3:39 ` David Brownell
2009-12-11 3:47 ` Greg KH
2009-12-11 4:13 ` David Brownell
2009-12-11 4:38 ` Greg KH
2009-12-11 5:13 ` David Brownell
2009-12-11 5:18 ` Greg KH
2009-12-11 5:36 ` Artem Bityutskiy
2009-12-11 5:46 ` Greg KH
2009-12-11 7:51 ` Artem Bityutskiy
2009-12-11 15:36 ` Greg KH
2009-12-11 13:23 ` [PATCH]crypto: Fix complain about lack test for internal used algorithm Youquan,Song
2009-12-11 6:04 ` Herbert Xu
2009-12-19 9:40 ` Youquan,Song [this message]
2009-12-19 2:29 ` Herbert Xu
2009-12-19 15:07 ` Youquan,Song
2009-12-19 9:42 ` Herbert Xu
2009-12-21 10:38 ` [Resend PATCH]crypto: " Youquan,Song
2009-12-23 11:59 ` Herbert Xu
2009-12-11 5:22 ` [PATCH 3/3] gpiolib: use chip->names for symlinks, always use gpioN for device names Ben Nizette
2009-12-11 5:12 ` Ben Nizette
2009-12-14 11:16 ` Jani Nikula
2009-12-14 22:27 ` Ben Nizette
2009-12-10 0:02 ` [PATCH 0/3] gpiolib: gpio naming in sysfs Andrew Morton
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20091219094043.GA23639@youquan-linux.bj.intel.com \
--to=youquan.song@linux.intel.com \
--cc=herbert@gondor.apana.org.au \
--cc=kent.liu@intel.com \
--cc=linux-kernel@vger.kernel.org \
--cc=ying.huang@intel.com \
--cc=youquan.song@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.