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.
Attachment:
signature.asc
Description: PGP signature