crypto: jh7110 - Correct deferred probe return
authorChanho Park <chanho61.park@samsung.com>
Thu, 9 Nov 2023 06:32:59 +0000 (15:32 +0900)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 25 Jan 2024 23:35:15 +0000 (15:35 -0800)
[ Upstream commit d57343022b71b9f41e731282dbe0baf0cff6ada8 ]

This fixes list_add corruption error when the driver is returned
with -EPROBE_DEFER. It is also required to roll back the previous
probe sequences in case of deferred_probe. So, this removes
'err_probe_defer" goto label and just use err_dma_init instead.

Fixes: 42ef0e944b01 ("crypto: starfive - Add crypto engine support")
Signed-off-by: Chanho Park <chanho61.park@samsung.com>
Reviewed-by: Jia Jie Ho <jiajie.ho@starfivetech.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/crypto/starfive/jh7110-cryp.c

index 08e974e..3a67ddc 100644 (file)
@@ -180,12 +180,8 @@ static int starfive_cryp_probe(struct platform_device *pdev)
        spin_unlock(&dev_list.lock);
 
        ret = starfive_dma_init(cryp);
-       if (ret) {
-               if (ret == -EPROBE_DEFER)
-                       goto err_probe_defer;
-               else
-                       goto err_dma_init;
-       }
+       if (ret)
+               goto err_dma_init;
 
        /* Initialize crypto engine */
        cryp->engine = crypto_engine_alloc_init(&pdev->dev, 1);
@@ -233,7 +229,7 @@ err_dma_init:
 
        tasklet_kill(&cryp->aes_done);
        tasklet_kill(&cryp->hash_done);
-err_probe_defer:
+
        return ret;
 }