crypto: geode-aes - access .cip instead of .blk in cipher mode
Roel Kluin [Fri, 8 Jan 2010 03:19:21 +0000 (14:19 +1100)]
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.

Signed-off-by: Roel Kluin <roel.kluin@gmail.com>
Signed-off-by: Sebastian Andrzej Siewior <sebastian@breakpoint.cc>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>

drivers/crypto/geode-aes.c

index 4801162..03e71b1 100644 (file)
@@ -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;