Message ID | 1455919722-8299-1-git-send-email-robert.jarzmik@free.fr (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Fri, Feb 19, 2016 at 11:08:42PM +0100, Robert Jarzmik wrote: > In the conversion to regmap, I assumed that the 2 following functions > was working symetrically: This doesn't apply against current code, please check and resend.
diff --git a/sound/soc/codecs/wm9713.c b/sound/soc/codecs/wm9713.c index 79e143625ac3..0242b7dcc1bb 100644 --- a/sound/soc/codecs/wm9713.c +++ b/sound/soc/codecs/wm9713.c @@ -1230,7 +1230,6 @@ static int wm9713_soc_remove(struct snd_soc_codec *codec) { struct wm9713_priv *wm9713 = snd_soc_codec_get_drvdata(codec); - snd_soc_codec_exit_regmap(codec); snd_soc_free_ac97_codec(wm9713->ac97); return 0; } @@ -1272,3 +1271,2 @@ static int wm9713_remove(struct platform_device *pdev) return 0; } --
In the conversion to regmap, I assumed that the 2 following functions was working symetrically: - snd_soc_codec_init_regmap() - snd_soc_codec_exit_regmap(codec) As a mater of fact with the current code the regmap is freed twice because of the devm_() call: (mutex_lock) from (debugfs_remove_recursive+0x50/0x1d0) (debugfs_remove_recursive) from (regmap_debugfs_exit+0x1c/0xd4) (regmap_debugfs_exit) from (regmap_exit+0x28/0xc8) (regmap_exit) from (release_nodes+0x18c/0x204) (release_nodes) from (device_release+0x18/0x90) (device_release) from (kobject_release+0x90/0x1bc) (kobject_release) from (wm9713_soc_remove+0x1c/0x24) (wm9713_soc_remove) from (soc_remove_component+0x50/0x7c) (soc_remove_component) from (soc_remove_dai_links+0x118/0x228) (soc_remove_dai_links) from (snd_soc_register_card+0x4e4/0xdd4) (snd_soc_register_card) from (devm_snd_soc_register_card+0x34/0x70) Fix this by removing the doubled regmap free. Fixes: 700dadfefc3d ASoC: wm9713: convert to regmap Signed-off-by: Robert Jarzmik <robert.jarzmik@free.fr> --- sound/soc/codecs/wm9713.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) 2.1.4