ASoC: fsl: Add missing error handling in pcm030_fabric_probe
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: c912fa9134
("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>
This commit is contained in:

committed by
Greg Kroah-Hartman

parent
3e69837551
commit
56e0747d59
@@ -93,16 +93,21 @@ static int pcm030_fabric_probe(struct platform_device *op)
|
|||||||
dev_err(&op->dev, "platform_device_alloc() failed\n");
|
dev_err(&op->dev, "platform_device_alloc() failed\n");
|
||||||
|
|
||||||
ret = platform_device_add(pdata->codec_device);
|
ret = platform_device_add(pdata->codec_device);
|
||||||
if (ret)
|
if (ret) {
|
||||||
dev_err(&op->dev, "platform_device_add() failed: %d\n", ret);
|
dev_err(&op->dev, "platform_device_add() failed: %d\n", ret);
|
||||||
|
platform_device_put(pdata->codec_device);
|
||||||
|
}
|
||||||
|
|
||||||
ret = snd_soc_register_card(card);
|
ret = snd_soc_register_card(card);
|
||||||
if (ret)
|
if (ret) {
|
||||||
dev_err(&op->dev, "snd_soc_register_card() failed: %d\n", 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);
|
platform_set_drvdata(op, pdata);
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static int pcm030_fabric_remove(struct platform_device *op)
|
static int pcm030_fabric_remove(struct platform_device *op)
|
||||||
|
Reference in New Issue
Block a user