diff options
author | Sylwester Nawrocki | 2019-06-07 17:49:26 +0200 |
---|---|---|
committer | Mark Brown | 2019-06-07 18:03:35 +0200 |
commit | 0779935938b1b6f492f019764bc7dda77bb08ec9 (patch) | |
tree | 1cd6160866bc29020be6bcbb190afa4781be5736 /Documentation/devicetree/bindings | |
parent | ASoC: msm8916-wcd-digital: Add sidetone support (diff) | |
download | kernel-qcow2-linux-0779935938b1b6f492f019764bc7dda77bb08ec9.tar.gz kernel-qcow2-linux-0779935938b1b6f492f019764bc7dda77bb08ec9.tar.xz kernel-qcow2-linux-0779935938b1b6f492f019764bc7dda77bb08ec9.zip |
ASoC: Remove erroneous soc_cleanup_card_resources() call
When soc_init_dai_link() call at the beginning of snd_soc_instantiate_card
function fails soc_cleanup_card_resources() and then snd_soc_dapm_free()
gets called with an incompletely initialized card->dapm. In particular
card->dapm.card is NULL and it gets dereferenced in dapm_free_widgets().
Also dapm->list is invalid and there is an invalid pointer dereference
from list_del().
The function call stack (deferred probing) on Chromebook Snow where this
issue has shown up in today's -next is:
snd_soc_dapm_free
soc_cleanup_card_resources
snd_soc_instantiate_card
snd_soc_register_card
devm_snd_soc_register_card
snow_probe
In patch 70fc53734e71 "ASoC: core: move DAI pre-links initiation to
snd_soc_instantiate_card" there is an soc_cleanup_platform() call instead
of soc_cleanup_card_resources() as in current -next.
soc_cleanup_platform got renamed to soc_cleanup_legacy, then removed
in commit adb76b5b9c47 "ASoC: soc-core: remove legacy style dai_link".
It seems in merge conflict resolution the soc_cleanup_platform() call got
renamed to soc_cleanup_card_resources(), instead of being removed.
Correct this by removing an unnecessary soc_cleanup_card_resources() call.
Fixes: a8e992342ce4 ("Merge branch 'asoc-5.2' into asoc-5.3")
Reported-by: Marek Szyprowski <m.szyprowski@samsung.com>
Suggested-by: Tzung-Bi Shih <tzungbi@google.com>
Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'Documentation/devicetree/bindings')
0 files changed, 0 insertions, 0 deletions