ASoC: qcom: common: Fix NULL pointer in of parser
A snd_soc_dai_link_component is allocated and associated with the first
link, so when the code tries to assign the of_node of the second link's
"cpu" member it dereferences a NULL pointer.
Fix this by moving the allocation and assignement of
snd_soc_dai_link_components into the loop, giving us one pair per link.
Fixes: 1e36ea360a
("ASoC: qcom: common: use modern dai_link style")
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
Acked-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
parent
e711223ad3
commit
16395ceee1
|
@ -42,17 +42,17 @@ int qcom_snd_parse_of(struct snd_soc_card *card)
|
|||
card->num_links = num_links;
|
||||
link = card->dai_link;
|
||||
|
||||
dlc = devm_kzalloc(dev, 2 * sizeof(*dlc), GFP_KERNEL);
|
||||
if (!dlc)
|
||||
return -ENOMEM;
|
||||
|
||||
link->cpus = &dlc[0];
|
||||
link->platforms = &dlc[1];
|
||||
|
||||
link->num_cpus = 1;
|
||||
link->num_platforms = 1;
|
||||
|
||||
for_each_child_of_node(dev->of_node, np) {
|
||||
dlc = devm_kzalloc(dev, 2 * sizeof(*dlc), GFP_KERNEL);
|
||||
if (!dlc)
|
||||
return -ENOMEM;
|
||||
|
||||
link->cpus = &dlc[0];
|
||||
link->platforms = &dlc[1];
|
||||
|
||||
link->num_cpus = 1;
|
||||
link->num_platforms = 1;
|
||||
|
||||
cpu = of_get_child_by_name(np, "cpu");
|
||||
platform = of_get_child_by_name(np, "platform");
|
||||
codec = of_get_child_by_name(np, "codec");
|
||||
|
|
Loading…
Reference in New Issue