On Ma, 2017-08-01 at 06:47 +0000, Kuninori Morimoto wrote: > Hi ALSA ML > > I noticed a little bit strange operation on soc_bind_dai_link(). > To research platform, it is using list_for_each_entry(). > After finding platform, it sets rtd->platform, but it doesn't use "break". > This means, rtd->platform might be overwrote. > Is this on purpose ? or bug ? > > static int soc_bind_dai_link(struct snd_soc_card *card, > struct snd_soc_dai_link *dai_link) > { > ... > /* find one from the set of registered platforms */ > list_for_each_entry(platform, &platform_list, list) { > platform_of_node = platform->dev->of_node; > if (!platform_of_node && platform->dev->parent->of_node) > platform_of_node = platform->dev->parent->of_node; > > if (dai_link->platform_of_node) { > if (platform_of_node != dai_link->platform_of_node) > continue; > } else { > if (strcmp(platform->component.name, platform_name)) > continue; > } > > => rtd->platform = platform; > This isn't actually a bug because you reach here only if the given platform is found. Anyhow, in the past the used to be a goto here. Things have changed with commit b19e6e7b763c7144bfe2ceccf988b64d66d6dd0a Author: Mark Brown <broonie@xxxxxxxxxxxxxxxxxxxxxxxxxxx> Date: Wed Mar 14 21:18:39 2012 +0000 ASoC: core: Use driver core probe deferral thanks, Daniel. _______________________________________________ Alsa-devel mailing list Alsa-devel@xxxxxxxxxxxxxxxx http://mailman.alsa-project.org/mailman/listinfo/alsa-devel