diff options
author | Jyri Sarha <jsarha@ti.com> | 2015-11-10 19:12:42 +0300 |
---|---|---|
committer | Mark Brown <broonie@kernel.org> | 2015-11-10 21:52:06 +0300 |
commit | fd589a1be20fdd76ef97700dd0185e7a060546dc (patch) | |
tree | 93a642eaf9fd2868431a06da7556d2e87b831762 /sound/soc/soc-topology.c | |
parent | bb9a13a0209c56cdf27d125a1f2f6f34378c64f4 (diff) | |
download | linux-fd589a1be20fdd76ef97700dd0185e7a060546dc.tar.xz |
ASoC: dapm: Reset dapm wcache after freeing damp widgets
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@ti.com>
Reported-by: Felipe Balbi <balbi@ti.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'sound/soc/soc-topology.c')
-rw-r--r-- | sound/soc/soc-topology.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/sound/soc/soc-topology.c b/sound/soc/soc-topology.c index 8d7ec80af51b..cce63fe65dd9 100644 --- a/sound/soc/soc-topology.c +++ b/sound/soc/soc-topology.c @@ -1805,6 +1805,7 @@ void snd_soc_tplg_widget_remove_all(struct snd_soc_dapm_context *dapm, snd_soc_tplg_widget_remove(w); snd_soc_dapm_free_widget(w); } + snd_soc_dapm_reset_cache(dapm); } EXPORT_SYMBOL_GPL(snd_soc_tplg_widget_remove_all); |