[alsa-devel] [PATCH] ASoC: damp: Reset dapm wcache after freeing damp widgets
Jyri Sarha
jsarha at ti.com
Mon Nov 9 14:30:26 CET 2015
If there is anything in damp->path_source_cache or
damp->path_sink_cache, it can not be valid after the widgets have been
freed. Without this patch a repeated remove and load of a machine
driver may cause NULL pointer reference in dapm_wcache_lookup() when a
freed widget, not belonging to any list, is haunting in the wcache.
Signed-off-by: Jyri Sarha <jsarha at ti.com>
Reported-by: Felipe Balbi <balbi at ti.com>
---
The patch fixes the problem reported here:
http://mailman.alsa-project.org/pipermail/alsa-devel/2015-October/099431.html
sound/soc/soc-dapm.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/sound/soc/soc-dapm.c b/sound/soc/soc-dapm.c
index ff8bda4..d78db59 100644
--- a/sound/soc/soc-dapm.c
+++ b/sound/soc/soc-dapm.c
@@ -2286,6 +2286,9 @@ static void dapm_free_widgets(struct snd_soc_dapm_context *dapm)
continue;
snd_soc_dapm_free_widget(w);
}
+
+ dapm->path_sink_cache.widget = NULL;
+ dapm->path_source_cache.widget = NULL;
}
static struct snd_soc_dapm_widget *dapm_find_widget(
--
1.9.1
More information about the Alsa-devel
mailing list