diff options
author | Jerome Brunet <jbrunet@baylibre.com> | 2019-06-10 14:53:44 +0200 |
---|---|---|
committer | Mark Brown <broonie@kernel.org> | 2019-06-10 15:39:26 +0100 |
commit | 960f428ca0a04a59e74639571126245a3efc4bcf (patch) | |
tree | 818c084d09d81506e69bd7b45e69487bf81691d0 /sound | |
parent | 6c0215f5d9f2a1fa5cab2ca320a41d9f19cfa80c (diff) | |
download | linux-960f428ca0a04a59e74639571126245a3efc4bcf.tar.gz linux-960f428ca0a04a59e74639571126245a3efc4bcf.tar.bz2 linux-960f428ca0a04a59e74639571126245a3efc4bcf.zip |
ASoC: meson: axg-card: fix null pointer dereference in clean up
When using modern dai_link style, we must first make sure the
struct snd_soc_dai_link_component exists before accessing its members.
In case of early probe deferral, some of the '.cpus' or '.codecs' may not
have been allocated yet. Check this before calling of_node_put() on the
structure member.
Fixes: c84836d7f650 ("ASoC: meson: axg-card: use modern dai_link style")
Cc: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Jerome Brunet <jbrunet@baylibre.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'sound')
-rw-r--r-- | sound/soc/meson/axg-card.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/sound/soc/meson/axg-card.c b/sound/soc/meson/axg-card.c index fb03258d00ae..70bb0cbad233 100644 --- a/sound/soc/meson/axg-card.c +++ b/sound/soc/meson/axg-card.c @@ -115,9 +115,11 @@ static void axg_card_clean_references(struct axg_card *priv) if (card->dai_link) { for_each_card_prelinks(card, i, link) { - of_node_put(link->cpus->of_node); + if (link->cpus) + of_node_put(link->cpus->of_node); for_each_link_codecs(link, j, codec) - of_node_put(codec->of_node); + if (codec) + of_node_put(codec->of_node); } } |