Hi!
commit fb25621da5702c104ce0a48de5b174ced09e5b4e upstream.
Add the missing platform_device_put() and platform_device_del() before return from pcm030_fabric_probe in the error handling case.
Are you sure?
--- a/sound/soc/fsl/pcm030-audio-fabric.c +++ b/sound/soc/fsl/pcm030-audio-fabric.c @@ -90,16 +90,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;
}
Besides interesting whitespace, this will happily do platform_device_put() twice. I suspect it should return or something. This does not look right.
Best regards, Pavel