[PATCH] improved TT scheduling for EHCI
[pandora-kernel.git] / crypto / api.c
index 2715afd..80bba63 100644 (file)
@@ -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))
@@ -251,7 +249,7 @@ int crypto_register_alg(struct crypto_alg *alg)
        if (alg->cra_alignmask & alg->cra_blocksize)
                return -EINVAL;
 
-       if (alg->cra_blocksize > PAGE_SIZE)
+       if (alg->cra_blocksize > PAGE_SIZE / 8)
                return -EINVAL;
 
        if (alg->cra_priority < 0)