forked from luck/tmp_suning_uos_patched
ASoC: fill in snd_soc_pcm_runtime.card before calling snd_soc_dai_link.init()
The .card member of the snd_soc_pcm_runtime structure pointed to by the snd_soc_dai_link.init() argument used to be initialized before the function being called. This has changed, probably unintentionally, after recent refactorings. Since the function implementations are free to make use of this pointer, move its assignment back before the function is called to avoid NULL pointer dereferences. Created and tested on Amstrad Delta againts linux-2.6.38-rc2 Signed-off-by: Janusz Krzysztofik <jkrzyszt@tis.icnet.pl> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
This commit is contained in:
parent
f019ee5feb
commit
0962bb217a
@ -1449,6 +1449,7 @@ static int soc_post_component_init(struct snd_soc_card *card,
|
|||||||
rtd = &card->rtd_aux[num];
|
rtd = &card->rtd_aux[num];
|
||||||
name = aux_dev->name;
|
name = aux_dev->name;
|
||||||
}
|
}
|
||||||
|
rtd->card = card;
|
||||||
|
|
||||||
/* machine controls, routes and widgets are not prefixed */
|
/* machine controls, routes and widgets are not prefixed */
|
||||||
temp = codec->name_prefix;
|
temp = codec->name_prefix;
|
||||||
@ -1471,7 +1472,6 @@ static int soc_post_component_init(struct snd_soc_card *card,
|
|||||||
|
|
||||||
/* register the rtd device */
|
/* register the rtd device */
|
||||||
rtd->codec = codec;
|
rtd->codec = codec;
|
||||||
rtd->card = card;
|
|
||||||
rtd->dev.parent = card->dev;
|
rtd->dev.parent = card->dev;
|
||||||
rtd->dev.release = rtd_release;
|
rtd->dev.release = rtd_release;
|
||||||
rtd->dev.init_name = name;
|
rtd->dev.init_name = name;
|
||||||
|
Loading…
Reference in New Issue
Block a user