crypto: api - Fix aligned ctx helper
Herbert Xu [Fri, 24 Jul 2009 07:26:15 +0000 (15:26 +0800)]
The aligned ctx helper was using a bogus alignment value thas was
one off the correct value.  Fortunately the current users do not
require anything beyond the natural alignment of the platform so
this hasn't caused a problem.

This patch fixes that and also removes the unnecessary minimum
check since if the alignment is less than the natural alignment
then the subsequent ALIGN operation should be a noop.

Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>

include/crypto/algapi.h

index 9de6c38..3f38814 100644 (file)
@@ -175,12 +175,8 @@ int blkcipher_walk_virt_block(struct blkcipher_desc *desc,
 
 static inline void *crypto_tfm_ctx_aligned(struct crypto_tfm *tfm)
 {
-       unsigned long addr = (unsigned long)crypto_tfm_ctx(tfm);
-       unsigned long align = crypto_tfm_alg_alignmask(tfm);
-
-       if (align <= crypto_tfm_ctx_alignment())
-               align = 1;
-       return (void *)ALIGN(addr, align);
+       return PTR_ALIGN(crypto_tfm_ctx(tfm),
+                        crypto_tfm_alg_alignmask(tfm) + 1);
 }
 
 static inline struct crypto_instance *crypto_tfm_alg_instance(