Message ID | 20220126113307.1673-1-linmq006@gmail.com (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | ASoC: fsl: Add missing error handling in pcm030_fabric_probe | expand |
On Wed, Jan 26, 2022 at 11:33:04AM +0000, Miaoqian Lin wrote: > Add the missing platform_device_put() and platform_device_del() > before return from pcm030_fabric_probe in the error handling case. > ret = platform_device_add(pdata->codec_device); > - if (ret) > + if (ret) { > dev_err(&op->dev, "platform_device_add() failed: %d\n", ret); > + goto exit_device_put; > + } > > ret = snd_soc_register_card(card); > if (ret) > dev_err(&op->dev, "snd_soc_register_card() failed: %d\n", ret); > > platform_set_drvdata(op, pdata); > + return ret; This means we'll skip the cleanup of the platform device that you just added if card creation fails: > +exit_release_dev: > + platform_device_del(pdata->codec_device); > +exit_device_put: > + platform_device_put(pdata->codec_device); > return ret; It needs to return early only if the card registration failed.
diff --git a/sound/soc/fsl/pcm030-audio-fabric.c b/sound/soc/fsl/pcm030-audio-fabric.c index af3c3b90c0ac..02c4ae20c673 100644 --- a/sound/soc/fsl/pcm030-audio-fabric.c +++ b/sound/soc/fsl/pcm030-audio-fabric.c @@ -93,15 +93,22 @@ static int pcm030_fabric_probe(struct platform_device *op) dev_err(&op->dev, "platform_device_alloc() failed\n"); ret = platform_device_add(pdata->codec_device); - if (ret) + if (ret) { dev_err(&op->dev, "platform_device_add() failed: %d\n", ret); + goto exit_device_put; + } ret = snd_soc_register_card(card); if (ret) dev_err(&op->dev, "snd_soc_register_card() failed: %d\n", ret); platform_set_drvdata(op, pdata); + return ret; +exit_release_dev: + platform_device_del(pdata->codec_device); +exit_device_put: + platform_device_put(pdata->codec_device); return ret; }
Add the missing platform_device_put() and platform_device_del() before return from pcm030_fabric_probe in the error handling case. Fixes: c912fa913446 ("ASoC: fsl: register the wm9712-codec") Signed-off-by: Miaoqian Lin <linmq006@gmail.com> --- sound/soc/fsl/pcm030-audio-fabric.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-)