OSDN Git Service

ASoC: topology: fix kernel oops on route addition error
authorPierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Tue, 7 Jul 2020 20:37:45 +0000 (15:37 -0500)
committerMark Brown <broonie@kernel.org>
Wed, 8 Jul 2020 13:25:18 +0000 (14:25 +0100)
commit6f0307df83f2aa6bdf656c2219c89ce96502d20e
tree2a8f62834c4c6df535a598470423b4b44c0ca389
parent503ed52225ed3d369c8e0dedf13556a7bc1e5c2b
ASoC: topology: fix kernel oops on route addition error

When errors happens while loading graph components, the kernel oopses
while trying to remove all topology components. This can be
root-caused to a list pointing to memory that was already freed on
error.

remove_route() is already called on errors and will perform the
required cleanups so there's no need to free the route memory in
soc_tplg_dapm_graph_elems_load() if the route was added to the
list. We do however want to free the routes allocated but not added to
the list.

Fixes: 7df04ea7a31ea ('ASoC: topology: modify dapm route loading routine and add dapm route unloading')
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Reviewed-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
Link: https://lore.kernel.org/r/20200707203749.113883-2-pierre-louis.bossart@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/soc-topology.c