On Friday, April 11, 2014 at 07:10:24 AM, Sonic Zhang wrote: > From: Sonic Zhang <sonic.zhang@xxxxxxxxxx> > > in case of multiple crc devices are probed. > Call platform_set_drvdata() before adding new CRC device into the list. > > Signed-off-by: Sonic Zhang <sonic.zhang@xxxxxxxxxx> > --- > v2-chagnes: > - check the CRC list and avoid call crypto_register_ahash() if not empty > - move platform_set_drvdata() before adding CRC device into the list > > drivers/crypto/bfin_crc.c | 25 ++++++++++++++----------- > 1 file changed, 14 insertions(+), 11 deletions(-) > > diff --git a/drivers/crypto/bfin_crc.c b/drivers/crypto/bfin_crc.c > index cea3e8c..7154d68 100644 > --- a/drivers/crypto/bfin_crc.c > +++ b/drivers/crypto/bfin_crc.c > @@ -665,20 +665,23 @@ static int bfin_crypto_crc_probe(struct > platform_device *pdev) if (timeout == 0) > dev_info(&pdev->dev, "init crc poly timeout\n"); > > + platform_set_drvdata(pdev, crc); > + > spin_lock(&crc_list.lock); > - list_add(&crc->list, &crc_list.dev_list); > - spin_unlock(&crc_list.lock); > > - platform_set_drvdata(pdev, crc); > + if (list_empty(&crc_list.dev_list)) { Try the following, which would remove the need for the else{} branch altogether: list_add(...); if (list_is_singular(...)) { crypto_register_.... ... } Other than that Reviewed-by: Marek Vasut <marex@xxxxxxx> Best regards, Marek Vasut -- To unsubscribe from this list: send the line "unsubscribe linux-crypto" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html