X-Git-Url: http://git.monstr.eu/?a=blobdiff_plain;f=crypto%2Fapi.c;h=80bba637fba7c1d325e0718bcfa800659f46251e;hb=2e1ca21d46aaef95101723fa402f39d3a95aba59;hp=e26156f718395393bc50883bc61edc7b2a7e2d22;hpb=37ef4399a6bb265d3035e6d6e45f7677b132a3ba;p=linux-2.6-microblaze.git diff --git a/crypto/api.c b/crypto/api.c index e26156f71839..80bba637fba7 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))