On Friday, April 18, 2014 at 12:01:41 PM, Horia Geanta wrote:
> In case hash key is bigger than algorithm block size, it is hashed.
> In this case, memory is allocated to keep this hash in hashed_key.
> hashed_key has to be freed on the key_dma dma mapping error path.
> 
> Cc: <sta...@vger.kernel.org> # 3.10+
> Signed-off-by: Horia Geanta <horia.gea...@freescale.com>
> ---
>  drivers/crypto/caam/caamhash.c | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/crypto/caam/caamhash.c
> b/drivers/crypto/caam/caamhash.c index 0378328f47a7..2d244e629ed2 100644
> --- a/drivers/crypto/caam/caamhash.c
> +++ b/drivers/crypto/caam/caamhash.c
> @@ -545,7 +545,8 @@ static int ahash_setkey(struct crypto_ahash *ahash,
>                                     DMA_TO_DEVICE);
>       if (dma_mapping_error(jrdev, ctx->key_dma)) {
>               dev_err(jrdev, "unable to map key i/o memory\n");
> -             return -ENOMEM;
> +             ret = -ENOMEM;
> +             goto map_err;
>       }
>  #ifdef DEBUG
>       print_hex_dump(KERN_ERR, "ctx.key@"__stringify(__LINE__)": ",
> @@ -559,6 +560,7 @@ static int ahash_setkey(struct crypto_ahash *ahash,
>                                DMA_TO_DEVICE);
>       }
> 
> +map_err:
>       kfree(hashed_key);

Reviewed-by: Marek Vasut <ma...@denx.de>

btw you might want to clean up the use of printk() vs. dev_*() throughout the 
driver, it's horribly intermixed. It'd be nice to use just dev_*() for output.
Stuff like
#ifdef DEBUG
printk(...)
#endif
can be easily replaced with dev_dbg() for example ...

Best regards,
Marek Vasut
--
To unsubscribe from this list: send the line "unsubscribe linux-crypto" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to