On 3/4/24 13:05, Cezary Rojewski wrote: > One of the framework responsibilities is to ensure that the enumerated > DPCMs are valid i.e.: a valid BE is connected to a valid FE DAI. While > the are checks in soc-core.c and soc-pcm.c that verify this, a component > driver may attempt to workaround this by loading an invalid graph > through the topology file. > > Be strict and fail topology loading when invalid graph is encountered. This is very invasive, it's perfectly possible that we have a number of 'broken' topologies where one path is 'invalid' but it doesn't impact functionality. This should be an opt-in behavior IMHO, not a blanket change. > Signed-off-by: Cezary Rojewski <cezary.rojewski@xxxxxxxxx> > --- > sound/soc/soc-topology.c | 5 +++-- > 1 file changed, 3 insertions(+), 2 deletions(-) > > diff --git a/sound/soc/soc-topology.c b/sound/soc/soc-topology.c > index d6d368837235..778f539d9ff5 100644 > --- a/sound/soc/soc-topology.c > +++ b/sound/soc/soc-topology.c > @@ -1083,8 +1083,9 @@ static int soc_tplg_dapm_graph_elems_load(struct soc_tplg *tplg, > break; > } > > - /* add route, but keep going if some fail */ > - snd_soc_dapm_add_routes(dapm, route, 1); > + ret = snd_soc_dapm_add_routes(dapm, route, 1); > + if (ret && !dapm->card->disable_route_checks) > + break; > } > > return ret;