[alsa-devel] [PATCH] ASoC: topology: fix soc_tplg_fe_link_create() - link->dobj initialization order

Jaroslav Kysela perex at perex.cz
Wed Jan 22 21:49:40 CET 2020


Dne 22. 01. 20 v 21:25 Mark Brown napsal(a):
> On Wed, Jan 22, 2020 at 01:28:57PM -0600, Pierre-Louis Bossart wrote:
>> On 1/22/20 1:07 PM, Jaroslav Kysela wrote:
> 
>>> The code which checks the return value for snd_soc_add_dai_link() call
>>> in soc_tplg_fe_link_create() moved the snd_soc_add_dai_link() call before
>>> link->dobj members initialization.
> 
>>> While it does not affect the latest kernels, the old soc-core.c code
>>> in the stable kernels is affected. The snd_soc_add_dai_link() function uses
>>> the link->dobj.type member to check, if the link structure is valid.
> 
>>> Reorder the link->dobj initialization to make things work again.
>>> It's harmless for the recent code (and the structure should be properly
>>> initialized before other calls anyway).
> 
>>> The problem is in stable linux-5.4.y since version 5.4.11 when the
>>> upstream commit 76d270364932 was applied.
> 
>> I am not following. Is this a fix for linux-5.4-y only, or is it needed on
>> Mark's tree? In the latter case, what is broken? We've been using Mark's
>> tree without issues, wondering what we missed?
> 
> He's saying it's a fix for stable but it's just a cleanup and robustness
> improvement in current kernels - when the patch 76d270364932 (ASoC:
> topology: Check return value for snd_soc_add_dai_link()) was backported
> by the bot the bot missed some other context which triggered bugs.

Exactly. It's because the commit 237d19080cd37e1ccf5462e63d8577d713f6da46 
("ASoC: soc-core: remove topology specific operation") removed the link->dobj 
checks, but this commit was not picked to the stable kernels.

The initialization reordering is fine for all kernels (and makes sense), so I 
would like to apply it everywhere.

			Thanks,
				Jaroslav

-- 
Jaroslav Kysela <perex at perex.cz>
Linux Sound Maintainer; ALSA Project; Red Hat, Inc.


More information about the Alsa-devel mailing list