From: Chuansheng Liu Date: Tue, 25 Dec 2012 16:57:32 +0000 (+0800) Subject: ASoC: core: fix the memory leak in case of remove_aux_dev() X-Git-Tag: v3.8-rc4~8^2~7^2~10^2 X-Git-Url: http://git.cascardo.info/?a=commitdiff_plain;h=d3bf1561253383a3dbcc40afdb2b039d56093a3e;p=cascardo%2Flinux.git 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 Signed-off-by: Mark Brown --- diff --git a/sound/soc/soc-core.c b/sound/soc/soc-core.c index f7551c1c827c..2370063b5824 100644 --- a/sound/soc/soc-core.c +++ b/sound/soc/soc-core.c @@ -1556,7 +1556,7 @@ static void soc_remove_aux_dev(struct snd_soc_card *card, int num) /* unregister the rtd device */ if (rtd->dev_registered) { device_remove_file(rtd->dev, &dev_attr_codec_reg); - device_del(rtd->dev); + device_unregister(rtd->dev); rtd->dev_registered = 0; }