X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=crypto%2Fapi.c;h=80bba637fba7c1d325e0718bcfa800659f46251e;hb=36679ea59846d8f34a48f71ca1a37671ca0ad3c5;hp=e26156f718395393bc50883bc61edc7b2a7e2d22;hpb=80c0531514516e43ae118ddf38424e06e5c3cb3c;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))