ASoC: core: fix the memory leak in case of remove_aux_dev()

When probing aux_dev, initializing is as below:
device_initialize()
device_add()

So when remove aux_dev, we need do as below:
device_del()
device_put()
Otherwise, the rtd_release() will not be called.

So here using device_unregister() to replace device_del(),
like the action in soc_remove_link_dais().
Signed-off-by: liu chuansheng <chuansheng.liu@intel.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
This commit is contained in:
Chuansheng Liu 2012-12-26 00:57:32 +08:00 committed by Mark Brown
parent 865df9cb12
commit d3bf156125
1 changed files with 1 additions and 1 deletions

View File

@ -1556,7 +1556,7 @@ static void soc_remove_aux_dev(struct snd_soc_card *card, int num)
/* unregister the rtd device */ /* unregister the rtd device */
if (rtd->dev_registered) { if (rtd->dev_registered) {
device_remove_file(rtd->dev, &dev_attr_codec_reg); device_remove_file(rtd->dev, &dev_attr_codec_reg);
device_del(rtd->dev); device_unregister(rtd->dev);
rtd->dev_registered = 0; rtd->dev_registered = 0;
} }