Skip to contentSkip to conversation

geode: Fix cip/blk confusion

PATCH In review Roel Kluin 3 participants 6 messages Jan 29, 2010 – Feb 4, 2010

Subsystems (4)
lore
Share & tools
lore

Roel Kluin

author
#0 lore raw

PATCH 1/1 geode: Fix cip/blk confusion

crypto_cipher cip members were set where crypto_cipher blk members should have been, also the PTR_ERR of the wrong pointer was returned.

---
This was already discussed in december/januari but I still cannot find it in mainline, was it lost?

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;
drivers/crypto/geode-aes.c +4 -4
index 4801162..c7a5a43 100644
@@ -135,13 +135,13 @@ 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) {
 		tfm->crt_flags &= ~CRYPTO_TFM_RES_MASK;
-		tfm->crt_flags |= (op->fallback.blk->base.crt_flags & CRYPTO_TFM_RES_MASK);
+		tfm->crt_flags |= (op->fallback.cip->base.crt_flags & CRYPTO_TFM_RES_MASK);
 	}
 	return 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;
#1 lore raw
Quoted 2 lines · * Roel Kluin | 2010-01-29 14:32:56 [+0100]:

This was already discussed in december/januari but I still cannot find it in mainline, was it lost?

Isn't this patch [0] and [1] in Herbert's tree? If so Herbert is probably going to merge in the next merge window because it is not urgend enough.

[0] http://git.kernel.org/?p=linux/kernel/git/herbert/cryptodev-2.6.git;a=commit;h=faad98f29606d9d3c6bddae7c88693be37d2fb43
[1] http://git.kernel.org/?p=linux/kernel/git/herbert/cryptodev-2.6.git;a=commit;h=d7ac769068df87ca8c7f72d99cf67ead16739f18

Sebastian

author
#2 lore raw
Quoted 11 lines · Sebastian Andrzej Siewior
Quoted 2 lines · * Roel Kluin | 2010-01-29 14:32:56 [+0100]:

This was already discussed in december/januari but I still cannot find it in mainline, was it lost?

Isn't this patch [0] and [1] in Herbert's tree? If so Herbert is probably going to merge in the next merge window because it is not urgend enough.

[0] http://git.kernel.org/?p=linux/kernel/git/herbert/cryptodev-2.6.git;a=commit;h=faad98f29606d9d3c6bddae7c88693be37d2fb43
[1] http://git.kernel.org/?p=linux/kernel/git/herbert/cryptodev-2.6.git;a=commit;h=d7ac769068df87ca8c7f72d99cf67ead16739f18

Yes that are the patches, however, I think my previous patch missed one blk to cip conversion in geode_setkey_cip():

       ret = crypto_cipher_setkey(op->fallback.cip, key, len);
       if (ret) {
               tfm->crt_flags &= ~CRYPTO_TFM_RES_MASK;
-               tfm->crt_flags |= (op->fallback.blk->base.crt_flags &
CRYPTO_TFM_RES_MASK);
+               tfm->crt_flags |= (op->fallback.cip->base.crt_flags &
CRYPTO_TFM_RES_MASK);
       }
       return ret;

}

Roel

maintainer
#3 lore raw
Quoted 3 lines · roel kluin

Yes that are the patches, however, I think my previous patch missed one blk to cip conversion in geode_setkey_cip():

Please send an incremental patch. 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
author
#4 lore raw

a crypto_cipher cip member was set where a crypto_cipher blk members should have been.

---

Quoted 4 lines
Quoted 2 lines

I think my previous patch missed one
blk to cip conversion in geode_setkey_cip():

Please send an incremental patch. Thanks!

Ok, here's the missing part

drivers/crypto/geode-aes.c +1 -1
index 03e71b1..c7a5a43 100644
@@ -141,7 +141,7 @@ static int geode_setkey_cip(struct crypto_tfm *tfm, const u8 *key,
 	ret = crypto_cipher_setkey(op->fallback.cip, key, len);
 	if (ret) {
 		tfm->crt_flags &= ~CRYPTO_TFM_RES_MASK;
-		tfm->crt_flags |= (op->fallback.blk->base.crt_flags & CRYPTO_TFM_RES_MASK);
+		tfm->crt_flags |= (op->fallback.cip->base.crt_flags & CRYPTO_TFM_RES_MASK);
 	}
 	return ret;
 }
maintainer
#5 lore raw
Quoted 4 lines · Roel Kluin

a crypto_cipher cip member was set where a crypto_cipher blk members should have been.

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