Subject: [RFC/Patch] fix typo on algorithm comparison

The compare code which looks for identical driver compares "driver name"
with "algorithm name" instead of "driver name" with "driver name".

Signed-off-by: Sebastian Siewior <[email protected]>
---

Herbert, it looks like a typo to me. I'm not sure.

--- a/crypto/algapi.c
+++ b/crypto/algapi.c
@@ -153,7 +153,7 @@ static int __crypto_register_alg(struct
struct crypto_larval *larval = (void *)q;

if (strcmp(alg->cra_name, q->cra_name) &&
- strcmp(alg->cra_driver_name, q->cra_name))
+ strcmp(alg->cra_driver_name, q->cra_driver_name))
continue;

if (larval->adult)


2007-10-02 14:29:17

by Herbert Xu

[permalink] [raw]
Subject: Re: [RFC/Patch] fix typo on algorithm comparison

On Mon, Oct 01, 2007 at 10:28:59PM +0200, Sebastian Siewior wrote:
>
> --- a/crypto/algapi.c
> +++ b/crypto/algapi.c
> @@ -153,7 +153,7 @@ static int __crypto_register_alg(struct
> struct crypto_larval *larval = (void *)q;
>
> if (strcmp(alg->cra_name, q->cra_name) &&
> - strcmp(alg->cra_driver_name, q->cra_name))
> + strcmp(alg->cra_driver_name, q->cra_driver_name))

Actually this is intentional. I've added a comment.

[CRYPTO] api: Explain the comparison on larval cra_name

This patch adds a comment to explain why we compare the cra_driver_name of
the algorithm being registered against the cra_name of a larval as opposed
to the cra_driver_name of the larval.

In fact larvals have only one name, cra_name which is the name that was
requested by the user. The test here is simply trying to find out whether
the algorithm being registered can or can not satisfy the larval.

Signed-off-by: Herbert Xu <[email protected]>

Thanks,
--
Visit Openswan at http://www.openswan.org/
Email: Herbert Xu ~{PmV>HI~} <[email protected]>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt
--
diff --git a/crypto/algapi.c b/crypto/algapi.c
index 58cc191..8ff8c26 100644
--- a/crypto/algapi.c
+++ b/crypto/algapi.c
@@ -149,6 +149,11 @@ static int __crypto_register_alg(struct crypto_alg *alg,
if (crypto_is_larval(q)) {
struct crypto_larval *larval = (void *)q;

+ /*
+ * Check to see if either our generic name or
+ * specific name can satisfy the name requested
+ * by the larval entry q.
+ */
if (strcmp(alg->cra_name, q->cra_name) &&
strcmp(alg->cra_driver_name, q->cra_name))
continue;