On Thursday, April 10, 2014 at 10:40:58 AM, Sonic Zhang wrote:
> From: Sonic Zhang <[email protected]>
>
> in case of multiple crc devices are probed.
>
> Signed-off-by: Sonic Zhang <[email protected]>
> ---
> drivers/crypto/bfin_crc.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/crypto/bfin_crc.c b/drivers/crypto/bfin_crc.c
> index cea3e8c..5f5f427 100644
> --- a/drivers/crypto/bfin_crc.c
> +++ b/drivers/crypto/bfin_crc.c
> @@ -672,7 +672,7 @@ static int bfin_crypto_crc_probe(struct platform_device
> *pdev) platform_set_drvdata(pdev, crc);
Rant: Reading through the code a little, the platform_set_drvdata() should
happen before you add the new CRC device into the list (above this code).
> ret = crypto_register_ahash(&algs);
> - if (ret) {
> + if (ret && ret != -EEXIST) {
Uh oh, how is this supposed to work ? Does blackfin have multiple crc32
processing units ? Can you simply not check if the crc_list is not empty and
avoid calling crypto_register_ahash() for subsequent crc32 units at all ?
> spin_lock(&crc_list.lock);
> list_del(&crc->list);
> spin_unlock(&crc_list.lock);
Best regards,
Marek Vasut
--
To unsubscribe from this list: send the line "unsubscribe linux-crypto" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html