Message ID | 20231109063259.3427055-1-chanho61.park@samsung.com (mailing list archive) |
---|---|
State | Accepted |
Delegated to: | Herbert Xu |
Headers | show |
Series | crypto: jh7110 - Correct deferred probe return | expand |
On 9/11/2023 2:32 pm, Chanho Park wrote: > 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> > --- > drivers/crypto/starfive/jh7110-cryp.c | 10 +++------- > 1 file changed, 3 insertions(+), 7 deletions(-) > > diff --git a/drivers/crypto/starfive/jh7110-cryp.c b/drivers/crypto/starfive/jh7110-cryp.c > index 08e974e0dd12..3a67ddc4d936 100644 > --- a/drivers/crypto/starfive/jh7110-cryp.c > +++ b/drivers/crypto/starfive/jh7110-cryp.c > @@ -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 @@ static int starfive_cryp_probe(struct platform_device *pdev) > > tasklet_kill(&cryp->aes_done); > tasklet_kill(&cryp->hash_done); > -err_probe_defer: > + > return ret; > } > Reviewed-by: Jia Jie Ho <jiajie.ho@starfivetech.com> Thanks for catching this. Regards, Jia Jie
On Thu, Nov 09, 2023 at 03:32:59PM +0900, Chanho Park wrote: > 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> > --- > drivers/crypto/starfive/jh7110-cryp.c | 10 +++------- > 1 file changed, 3 insertions(+), 7 deletions(-) Patch applied. Thanks.
diff --git a/drivers/crypto/starfive/jh7110-cryp.c b/drivers/crypto/starfive/jh7110-cryp.c index 08e974e0dd12..3a67ddc4d936 100644 --- a/drivers/crypto/starfive/jh7110-cryp.c +++ b/drivers/crypto/starfive/jh7110-cryp.c @@ -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 @@ static int starfive_cryp_probe(struct platform_device *pdev) tasklet_kill(&cryp->aes_done); tasklet_kill(&cryp->hash_done); -err_probe_defer: + return ret; }
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> --- drivers/crypto/starfive/jh7110-cryp.c | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-)