| From fb25621da5702c104ce0a48de5b174ced09e5b4e Mon Sep 17 00:00:00 2001 |
| From: Miaoqian Lin <linmq006@gmail.com> |
| Date: Thu, 27 Jan 2022 13:13:34 +0000 |
| Subject: ASoC: fsl: Add missing error handling in pcm030_fabric_probe |
| |
| From: Miaoqian Lin <linmq006@gmail.com> |
| |
| commit fb25621da5702c104ce0a48de5b174ced09e5b4e upstream. |
| |
| 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> |
| Link: https://lore.kernel.org/r/20220127131336.30214-1-linmq006@gmail.com |
| Signed-off-by: Mark Brown <broonie@kernel.org> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| --- |
| sound/soc/fsl/pcm030-audio-fabric.c | 11 ++++++++--- |
| 1 file changed, 8 insertions(+), 3 deletions(-) |
| |
| --- a/sound/soc/fsl/pcm030-audio-fabric.c |
| +++ b/sound/soc/fsl/pcm030-audio-fabric.c |
| @@ -93,16 +93,21 @@ static int pcm030_fabric_probe(struct pl |
| 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); |
| + platform_device_put(pdata->codec_device); |
| + } |
| |
| ret = snd_soc_register_card(card); |
| - if (ret) |
| + if (ret) { |
| dev_err(&op->dev, "snd_soc_register_card() failed: %d\n", ret); |
| + platform_device_del(pdata->codec_device); |
| + platform_device_put(pdata->codec_device); |
| + } |
| |
| platform_set_drvdata(op, pdata); |
| - |
| return ret; |
| + |
| } |
| |
| static int pcm030_fabric_remove(struct platform_device *op) |