Skip to contentSkip to conversation

geode: PTR_ERR return of wrong pointer in fallback_init_cip()

PATCH In review Roel Kluin 4 participants 9 messages Dec 7, 2009 – Jan 8, 2010

Subsystems (4)
lore
Share & tools
lore

Roel Kluin

author
#0 lore raw

PATCH 1/1 geode: PTR_ERR return of wrong pointer in fallback_init_cip()

Return the PTR_ERR of the correct pointer.

---
 drivers/crypto/geode-aes.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)
drivers/crypto/geode-aes.c +1 -1
index 4801162..12cf864 100644
@@ -263,7 +263,7 @@ static int fallback_init_cip(struct crypto_tfm *tfm)
 
 	if (IS_ERR(op->fallback.cip)) {
 		printk(KERN_ERR "Error allocating fallback algo %s\n", name);
-		return PTR_ERR(op->fallback.blk);
+		return PTR_ERR(op->fallback.cip);
 	}
 
 	return 0;
#1 lore raw
Quoted 12 lines · * Roel Kluin | 2009-12-07 14:28:23 [+0100]:

Return the PTR_ERR of the correct pointer.

---
drivers/crypto/geode-aes.c | 2 +-

1 files changed, 1 insertions(+), 1 deletions(-)
drivers/crypto/geode-aes.c +0 -0
index 4801162..12cf864 100644

drivers/crypto/geode-aes.c static int fallback_init_cip(struct crypto_tfm *tfm) · line 267

Quoted 6 lines
drivers/crypto/geode-aes.c +1 -1
@@ -263,7 +263,7 @@ static int fallback_init_cip(struct crypto_tfm *tfm)
 
 	if (IS_ERR(op->fallback.cip)) {
 		printk(KERN_ERR "Error allocating fallback algo %s\n", name);
-		return PTR_ERR(op->fallback.blk);
+		return PTR_ERR(op->fallback.cip);
 	}

This is correct however you missed one spot a few lines above that one. Sergey Mironov sent a patch a while ago unfortunatelly a mangled one and he hasn't resent it yet.
Could you please look at [0] for the missing spot? If you had fun fixing that one, I've a made a similar mistake in s390's driver [1]. If not please say so.

drivers/crypto/geode-aes.c static int fallback_init_cip(struct crypto_tfm *tfm) · line 269

Quoted 2 lines
drivers/crypto/geode-aes.c +0 -0
 	return 0;

[0] http://www.mail-archive.com/[email protected]/msg03883.html
[1] http://www.mail-archive.com/[email protected]/msg03888.html

Sebastian

author
#2 lore raw

Return the PTR_ERR of the correct pointer.

---

Quoted 6 lines

This is correct however you missed one spot a few lines above that one. Sergey Mironov sent a patch a while ago unfortunatelly a mangled one and he hasn't resent it yet.
Could you please look at [0] for the missing spot? If you had fun fixing that one, I've a made a similar mistake in s390's driver [1]. If not please say so.

Yes, I found that one too, although I sent a patch in a seperate thread. You can ignore that and ack this if you like it.
I did not find the additional mistakes, though, so a new patch below.

Quoted 4 lines

[0] http://www.mail-archive.com/[email protected]/msg03883.html
[1] http://www.mail-archive.com/[email protected]/msg03888.html

Sebastian

Thanks,

Roel

 arch/s390/crypto/aes_s390.c |    8 ++++----
 drivers/crypto/geode-aes.c  |    6 +++---
 2 files changed, 7 insertions(+), 7 deletions(-)
arch/s390/crypto/aes_s390.c +4 -4
index 6118890..58f4673 100644
@@ -78,14 +78,14 @@ static int setkey_fallback_cip(struct crypto_tfm *tfm, const u8 *in_key,
 	struct s390_aes_ctx *sctx = crypto_tfm_ctx(tfm);
 	int ret;
 
-	sctx->fallback.blk->base.crt_flags &= ~CRYPTO_TFM_REQ_MASK;
-	sctx->fallback.blk->base.crt_flags |= (tfm->crt_flags &
+	sctx->fallback.cip->base.crt_flags &= ~CRYPTO_TFM_REQ_MASK;
+	sctx->fallback.cip->base.crt_flags |= (tfm->crt_flags &
 			CRYPTO_TFM_REQ_MASK);
 
 	ret = crypto_cipher_setkey(sctx->fallback.cip, in_key, key_len);
 	if (ret) {
 		tfm->crt_flags &= ~CRYPTO_TFM_RES_MASK;
-		tfm->crt_flags |= (sctx->fallback.blk->base.crt_flags &
+		tfm->crt_flags |= (sctx->fallback.cip->base.crt_flags &
 				CRYPTO_TFM_RES_MASK);
 	}
 	return ret;
@@ -174,7 +174,7 @@ static int fallback_init_cip(struct crypto_tfm *tfm)
 	if (IS_ERR(sctx->fallback.cip)) {
 		pr_err("Allocating AES fallback algorithm %s failed\n",
 		       name);
-		return PTR_ERR(sctx->fallback.blk);
+		return PTR_ERR(sctx->fallback.cip);
 	}
 
 	return 0;
drivers/crypto/geode-aes.c +3 -3
index 4801162..03e71b1 100644
@@ -135,8 +135,8 @@ static int geode_setkey_cip(struct crypto_tfm *tfm, const u8 *key,
 	/*
 	 * The requested key size is not supported by HW, do a fallback
 	 */
-	op->fallback.blk->base.crt_flags &= ~CRYPTO_TFM_REQ_MASK;
-	op->fallback.blk->base.crt_flags |= (tfm->crt_flags & CRYPTO_TFM_REQ_MASK);
+	op->fallback.cip->base.crt_flags &= ~CRYPTO_TFM_REQ_MASK;
+	op->fallback.cip->base.crt_flags |= (tfm->crt_flags & CRYPTO_TFM_REQ_MASK);
 
 	ret = crypto_cipher_setkey(op->fallback.cip, key, len);
 	if (ret) {
@@ -263,7 +263,7 @@ static int fallback_init_cip(struct crypto_tfm *tfm)
 
 	if (IS_ERR(op->fallback.cip)) {
 		printk(KERN_ERR "Error allocating fallback algo %s\n", name);
-		return PTR_ERR(op->fallback.blk);
+		return PTR_ERR(op->fallback.cip);
 	}
 
 	return 0;
maintainer
#3 lore raw
Quoted 3 lines · Roel Kluin

Return the PTR_ERR of the correct pointer.

Patch applied. Thank you.

Signature · 4 lines
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
#4 lore raw
Quoted 6 lines · * Herbert Xu | 2009-12-11 23:03:49 [+0800]:
Quoted 3 lines · Roel Kluin

Return the PTR_ERR of the correct pointer.

Patch applied. Thank you.

Martin picked an earlier version of this patch [0] which is allready in Linus' tree as b59cdcb33 ("[S390] crypto: use more descriptive function names for init/exit routines.") and I don't see this in the cryptodev or crypto tree.
Herbert, do you want me to rebase this patch on top of Linus' tree or do you have allready plans for this?

[0] http://www.mail-archive.com/[email protected]/msg03919.html

Sebastian

maintainer
#5 lore raw
Quoted 5 lines · Sebastian Andrzej Siewior

Herbert, do you want me to rebase this patch on top of Linus' tree or do you have allready plans for this?

[0] http://www.mail-archive.com/[email protected]/msg03919.html

Plesae repost. Thanks!

Signature · 4 lines
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
#6 lore raw

PATCH 1/2 crypto/s390_aes: access .cip instead of .blk in cipher mode

Quoted 1 line

From aff6860829e06f8f7ba5f4a8160a6612e1a6eca7 Mon Sep 17 00:00:00 2001

From: Roel Kluin <[email protected]>
Date: Thu, 7 Jan 2010 21:55:50 +0100

The fallback code in cipher mode touch the union fallback.blk instead of fallback.cip. This is wrong because we use the cipher and not the blockcipher. This did not show any side effects yet because both types / structs contain the same element right now.

[bigeasy@breakpoint: different commit message, split the patch in two and
rebase ]

---
 arch/s390/crypto/aes_s390.c |    6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)
arch/s390/crypto/aes_s390.c +3 -3
index 6be4503..58f4673 100644
@@ -78,14 +78,14 @@ static int setkey_fallback_cip(struct crypto_tfm *tfm, const u8 *in_key,
 	struct s390_aes_ctx *sctx = crypto_tfm_ctx(tfm);
 	int ret;
 
-	sctx->fallback.blk->base.crt_flags &= ~CRYPTO_TFM_REQ_MASK;
-	sctx->fallback.blk->base.crt_flags |= (tfm->crt_flags &
+	sctx->fallback.cip->base.crt_flags &= ~CRYPTO_TFM_REQ_MASK;
+	sctx->fallback.cip->base.crt_flags |= (tfm->crt_flags &
 			CRYPTO_TFM_REQ_MASK);
 
 	ret = crypto_cipher_setkey(sctx->fallback.cip, in_key, key_len);
 	if (ret) {
 		tfm->crt_flags &= ~CRYPTO_TFM_RES_MASK;
-		tfm->crt_flags |= (sctx->fallback.blk->base.crt_flags &
+		tfm->crt_flags |= (sctx->fallback.cip->base.crt_flags &
 				CRYPTO_TFM_RES_MASK);
 	}
 	return ret;
Signature · 1 line
1.6.6
#7 lore raw

PATCH 2/2 crypto/geode_aes: access .cip instead of .blk in cipher mode

In reply to Herbert Xu
Quoted 1 line

From caa5c9a662be92aa79b2ef1d14a509391cfa9254 Mon Sep 17 00:00:00 2001

From: Roel Kluin <[email protected]>
Date: Thu, 7 Jan 2010 22:00:26 +0100

The fallback code in cipher mode touch the union fallback.blk instead of fallback.cip. This is wrong because we use the cipher and not the blockcipher. This did not show any side effects yet because both types / structs contain the same element right now.

[bigeasy@breakpoint: different commit message, split the patch in two]

---
 drivers/crypto/geode-aes.c |    6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)
drivers/crypto/geode-aes.c +3 -3
index 4801162..03e71b1 100644
@@ -135,8 +135,8 @@ static int geode_setkey_cip(struct crypto_tfm *tfm, const u8 *key,
 	/*
 	 * The requested key size is not supported by HW, do a fallback
 	 */
-	op->fallback.blk->base.crt_flags &= ~CRYPTO_TFM_REQ_MASK;
-	op->fallback.blk->base.crt_flags |= (tfm->crt_flags & CRYPTO_TFM_REQ_MASK);
+	op->fallback.cip->base.crt_flags &= ~CRYPTO_TFM_REQ_MASK;
+	op->fallback.cip->base.crt_flags |= (tfm->crt_flags & CRYPTO_TFM_REQ_MASK);
 
 	ret = crypto_cipher_setkey(op->fallback.cip, key, len);
 	if (ret) {
@@ -263,7 +263,7 @@ static int fallback_init_cip(struct crypto_tfm *tfm)
 
 	if (IS_ERR(op->fallback.cip)) {
 		printk(KERN_ERR "Error allocating fallback algo %s\n", name);
-		return PTR_ERR(op->fallback.blk);
+		return PTR_ERR(op->fallback.cip);
 	}
 
 	return 0;
Signature · 1 line
1.6.6
maintainer
#8 lore raw

Re: [PATCH 2/2] crypto/geode_aes: access .cip instead of .blk in cipher mode

Quoted 9 lines · Sebastian Andrzej Siewior
Quoted 1 line

From caa5c9a662be92aa79b2ef1d14a509391cfa9254 Mon Sep 17 00:00:00 2001

From: Roel Kluin <[email protected]>
Date: Thu, 7 Jan 2010 22:00:26 +0100

The fallback code in cipher mode touch the union fallback.blk instead of fallback.cip. This is wrong because we use the cipher and not the blockcipher. This did not show any side effects yet because both types / structs contain the same element right now.

Quoted 4 lines

[bigeasy@breakpoint: different commit message, split the patch in two]

All applied. Thanks!

Signature · 4 lines
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