X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;ds=sidebyside;f=crypto%2Fapi.c;h=80bba637fba7c1d325e0718bcfa800659f46251e;hb=698d070746770aaaec78ab4ffa3ab1f1d5c6abe8;hp=e26156f718395393bc50883bc61edc7b2a7e2d22;hpb=a457aa6c2bdd743bbbffd3f9e4fdbd8c71f8af1b;p=powerpc.git diff --git a/crypto/api.c b/crypto/api.c index e26156f718..80bba637fb 100644 --- a/crypto/api.c +++ b/crypto/api.c @@ -165,7 +165,7 @@ static unsigned int crypto_ctxsize(struct crypto_alg *alg, int flags) break; } - return len + alg->cra_alignmask; + return len + (alg->cra_alignmask & ~(crypto_tfm_ctx_alignment() - 1)); } struct crypto_tfm *crypto_alloc_tfm(const char *name, u32 flags) @@ -179,12 +179,10 @@ struct crypto_tfm *crypto_alloc_tfm(const char *name, u32 flags) goto out; tfm_size = sizeof(*tfm) + crypto_ctxsize(alg, flags); - tfm = kmalloc(tfm_size, GFP_KERNEL); + tfm = kzalloc(tfm_size, GFP_KERNEL); if (tfm == NULL) goto out_put; - memset(tfm, 0, tfm_size); - tfm->__crt_alg = alg; if (crypto_init_flags(tfm, flags))