tree 9d473d9e2ef26fbf1be0f5eba76d53ada04b3090
parent d563b6c834ae1da46fcb1f00f262c76a155aa231
author Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> 1598486139 +0900
committer Mark Brown <broonie@kernel.org> 1598611103 +0100
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQFHBAABCgAxFiEEreZoqmdXGLWf4p/qJNaLcl1Uh9AFAl9I3p8THGJyb29uaWVA
 a2VybmVsLm9yZwAKCRAk1otyXVSH0Aj6B/oCBlOQRJCapp5a3vsyDmRfViSkZ1N3
 HsO7B2ctel6y7P6q3a5emH+Ael1ZE9K7vEbp/x1nLtiXnmznTkZnpWfh6Rwnnnoo
 f+sFpqeRLTkLKmyMkfjnMZiopuiSY42EWiaeqBDLY3o83ZLRVSURyUCyPPPxkJNb
 vsTSPjQha3RnfaKa+V0lzwcaDcm5wHyNeEwDhEhHmm541Oa7miUATaJ0tqaydnf4
 zFKw497zgGH0V470qAC0+UYqLBUrzbumXs8BdpfUITATrJ1YlG40pPBxqOsHopIY
 vbVCip6UXV+2dicuBTGuG+P2eoNakJ+FXEsUPuONdF4CukpyEp2M4/kY
 =YQ6m
 -----END PGP SIGNATURE-----

ASoC: soc-core: add snd_soc_find_dai_with_mutex()

commit 25612477d20b52 ("ASoC: soc-dai: set dai_link dpcm_ flags with a helper")
added snd_soc_dai_link_set_capabilities().
But it is using snd_soc_find_dai() (A) which is required client_mutex (B).
And client_mutex is soc-core.c local.

	struct snd_soc_dai *snd_soc_find_dai(xxx)
	{
		...
(B)		lockdep_assert_held(&client_mutex);
		...
	}

	void snd_soc_dai_link_set_capabilities(xxx)
	{
		...
		for_each_pcm_streams(direction) {
			...
			for_each_link_cpus(dai_link, i, cpu) {
(A)				dai = snd_soc_find_dai(cpu);
				...
			}
			...
			for_each_link_codecs(dai_link, i, codec) {
(A)				dai = snd_soc_find_dai(codec);
				...
			}
		}
		...
	}

Because of these background, we will get WARNING if .config has CONFIG_LOCKDEP.

	WARNING: CPU: 2 PID: 53 at sound/soc/soc-core.c:814 snd_soc_find_dai+0xf8/0x100
	CPU: 2 PID: 53 Comm: kworker/2:1 Not tainted 5.7.0-rc1+ #328
	Hardware name: Renesas H3ULCB Kingfisher board based on r8a77951 (DT)
	Workqueue: events deferred_probe_work_func
	pstate: 60000005 (nZCv daif -PAN -UAO)
	pc : snd_soc_find_dai+0xf8/0x100
	lr : snd_soc_find_dai+0xf4/0x100
	...
	Call trace:
	 snd_soc_find_dai+0xf8/0x100
	 snd_soc_dai_link_set_capabilities+0xa0/0x16c
	 graph_dai_link_of_dpcm+0x390/0x3c0
	 graph_for_each_link+0x134/0x200
	 graph_probe+0x144/0x230
	 platform_drv_probe+0x5c/0xb0
	 really_probe+0xe4/0x430
	 driver_probe_device+0x60/0xf4

snd_soc_find_dai() will be used from (X) CPU/Codec/Platform driver with
mutex lock, and (Y) Card driver without mutex lock.
This snd_soc_dai_link_set_capabilities() is for Card driver,
this means called without mutex.
This patch adds snd_soc_find_dai_with_mutex() to solve it.

Fixes: 25612477d20b52 ("ASoC: soc-dai: set dai_link dpcm_ flags with a helper")
Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Link: https://lore.kernel.org/r/87blixvuab.wl-kuninori.morimoto.gx@renesas.com
Signed-off-by: Mark Brown <broonie@kernel.org>
