26 Jan
2022
26 Jan
'22
2:58 p.m.
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.