linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2] ASoC: soc-core: defer card probe until all component is added to list
@ 2019-01-09  8:47 Rohit kumar
  2019-01-09 12:49 ` Applied "ASoC: soc-core: defer card probe until all component is added to list" to the asoc tree Mark Brown
  2019-01-11  5:07 ` [alsa-devel] [PATCH v2] ASoC: soc-core: defer card probe until all component is added to list Pierre-Louis Bossart
  0 siblings, 2 replies; 7+ messages in thread
From: Rohit kumar @ 2019-01-09  8:47 UTC (permalink / raw)
  To: plai, bgoswami, asishb, lgirdwood, broonie, perex, tiwai,
	alsa-devel, linux-kernel, rohkumar, srinivas.kandagatla,
	vinod.koul
  Cc: Ajit Pandey, Rohit kumar

From: Ajit Pandey <ajitp@codeaurora.org>

DAI component probe is not called if it is not present
in component list during sound card registration.
Check if component is available in component list for
platform and cpu dai before soundcard registration.

Signed-off-by: Ajit Pandey <ajitp@codeaurora.org>
Signed-off-by: Rohit kumar <rohitkr@codeaurora.org>
---
Changes since v1:
Moved component find logic to soc-core instead of machine driver
as suggested by Mark.

 sound/soc/soc-core.c | 17 ++++++++++++++++-
 1 file changed, 16 insertions(+), 1 deletion(-)

diff --git a/sound/soc/soc-core.c b/sound/soc/soc-core.c
index 0462b3e..eec92f1 100644
--- a/sound/soc/soc-core.c
+++ b/sound/soc/soc-core.c
@@ -1027,7 +1027,6 @@ static int snd_soc_init_platform(struct snd_soc_card *card,
 				 struct snd_soc_dai_link *dai_link)
 {
 	struct snd_soc_dai_link_component *platform = dai_link->platform;
-
 	/*
 	 * FIXME
 	 *
@@ -1129,6 +1128,14 @@ static int soc_init_dai_link(struct snd_soc_card *card,
 			link->name);
 		return -EINVAL;
 	}
+
+	/*
+	 * Defer card registartion if platform dai component is not added to
+	 * component list.
+	 */
+	if (!soc_find_component(link->platform->of_node, link->platform->name))
+		return -EPROBE_DEFER;
+
 	/*
 	 * CPU device may be specified by either name or OF node, but
 	 * can be left unspecified, and will be matched based on DAI
@@ -1140,6 +1147,14 @@ static int soc_init_dai_link(struct snd_soc_card *card,
 			link->name);
 		return -EINVAL;
 	}
+
+	/*
+	 * Defer card registartion if cpu dai component is not added to
+	 * component list.
+	 */
+	if (!soc_find_component(link->cpu_of_node, link->cpu_name))
+		return -EPROBE_DEFER;
+
 	/*
 	 * At least one of CPU DAI name or CPU device name/node must be
 	 * specified
-- 
Qualcomm India Private Limited, on behalf of Qualcomm Innovation Center, Inc.,
is a member of Code Aurora Forum, a Linux Foundation Collaborative Project.


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Applied "ASoC: soc-core: defer card probe until all component is added to list" to the asoc tree
  2019-01-09  8:47 [PATCH v2] ASoC: soc-core: defer card probe until all component is added to list Rohit kumar
@ 2019-01-09 12:49 ` Mark Brown
  2019-01-10  2:32   ` [alsa-devel] " Kuninori Morimoto
  2019-01-11  5:07 ` [alsa-devel] [PATCH v2] ASoC: soc-core: defer card probe until all component is added to list Pierre-Louis Bossart
  1 sibling, 1 reply; 7+ messages in thread
From: Mark Brown @ 2019-01-09 12:49 UTC (permalink / raw)
  To: Ajit Pandey
  Cc: Rohit kumar, Mark Brown, plai, bgoswami, asishb, lgirdwood,
	broonie, perex, tiwai, alsa-devel, linux-kernel, rohkumar,
	srinivas.kandagatla, vinod.koul, Rohit kumar, alsa-devel

The patch

   ASoC: soc-core: defer card probe until all component is added to list

has been applied to the asoc tree at

   https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git 

All being well this means that it will be integrated into the linux-next
tree (usually sometime in the next 24 hours) and sent to Linus during
the next merge window (or sooner if it is a bug fix), however if
problems are discovered then the patch may be dropped or reverted.  

You may get further e-mails resulting from automated or manual testing
and review of the tree, please engage with people reporting problems and
send followup patches addressing any issues that are reported if needed.

If any updates are required or you are submitting further changes they
should be sent as incremental updates against current git, existing
patches will not be replaced.

Please add any relevant lists and maintainers to the CCs when replying
to this mail.

Thanks,
Mark

From 8780cf1142a59568a3aa77959cbd76b2edb6fd81 Mon Sep 17 00:00:00 2001
From: Ajit Pandey <ajitp@codeaurora.org>
Date: Wed, 9 Jan 2019 14:17:07 +0530
Subject: [PATCH] ASoC: soc-core: defer card probe until all component is added
 to list

DAI component probe is not called if it is not present
in component list during sound card registration.
Check if component is available in component list for
platform and cpu dai before soundcard registration.

Signed-off-by: Ajit Pandey <ajitp@codeaurora.org>
Signed-off-by: Rohit kumar <rohitkr@codeaurora.org>
Signed-off-by: Mark Brown <broonie@kernel.org>
---
 sound/soc/soc-core.c | 17 ++++++++++++++++-
 1 file changed, 16 insertions(+), 1 deletion(-)

diff --git a/sound/soc/soc-core.c b/sound/soc/soc-core.c
index 0462b3ec977a..eec92f17dd15 100644
--- a/sound/soc/soc-core.c
+++ b/sound/soc/soc-core.c
@@ -1027,7 +1027,6 @@ static int snd_soc_init_platform(struct snd_soc_card *card,
 				 struct snd_soc_dai_link *dai_link)
 {
 	struct snd_soc_dai_link_component *platform = dai_link->platform;
-
 	/*
 	 * FIXME
 	 *
@@ -1129,6 +1128,14 @@ static int soc_init_dai_link(struct snd_soc_card *card,
 			link->name);
 		return -EINVAL;
 	}
+
+	/*
+	 * Defer card registartion if platform dai component is not added to
+	 * component list.
+	 */
+	if (!soc_find_component(link->platform->of_node, link->platform->name))
+		return -EPROBE_DEFER;
+
 	/*
 	 * CPU device may be specified by either name or OF node, but
 	 * can be left unspecified, and will be matched based on DAI
@@ -1140,6 +1147,14 @@ static int soc_init_dai_link(struct snd_soc_card *card,
 			link->name);
 		return -EINVAL;
 	}
+
+	/*
+	 * Defer card registartion if cpu dai component is not added to
+	 * component list.
+	 */
+	if (!soc_find_component(link->cpu_of_node, link->cpu_name))
+		return -EPROBE_DEFER;
+
 	/*
 	 * At least one of CPU DAI name or CPU device name/node must be
 	 * specified
-- 
2.20.1


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: [alsa-devel] Applied "ASoC: soc-core: defer card probe until all   component is added to list" to the asoc tree
  2019-01-09 12:49 ` Applied "ASoC: soc-core: defer card probe until all component is added to list" to the asoc tree Mark Brown
@ 2019-01-10  2:32   ` Kuninori Morimoto
  2019-01-10  7:09     ` Rohit Kumar
  0 siblings, 1 reply; 7+ messages in thread
From: Kuninori Morimoto @ 2019-01-10  2:32 UTC (permalink / raw)
  To: Mark Brown
  Cc: Ajit Pandey, rohkumar, alsa-devel, bgoswami, vinod.koul,
	linux-kernel, plai, tiwai, lgirdwood, Rohit kumar, asishb,
	srinivas.kandagatla


Hi Mark, Ajit

> From: Ajit Pandey <ajitp@codeaurora.org>
> Date: Wed, 9 Jan 2019 14:17:07 +0530
> Subject: [PATCH] ASoC: soc-core: defer card probe until all component is added
>  to list
> 
> DAI component probe is not called if it is not present
> in component list during sound card registration.
> Check if component is available in component list for
> platform and cpu dai before soundcard registration.
> 
> Signed-off-by: Ajit Pandey <ajitp@codeaurora.org>
> Signed-off-by: Rohit kumar <rohitkr@codeaurora.org>
> Signed-off-by: Mark Brown <broonie@kernel.org>
> ---

I got below WARNING by this patch.
I guess we need mutex_lock() on snd_soc_register_card() ?

	...
	[drm] Device feb00000.display probed
	[drm] Cannot find any crtc or sizes
	[drm] Cannot find any crtc or sizes
	WARNING: CPU: 0 PID: 76 at sound/soc/soc-core.c:739 soc_find_component+0xb8/0xc0
	CPU: 0 PID: 76 Comm: kworker/0:1 Not tainted 5.0.0-rc1+ #1360
	Hardware name: Renesas H3ULCB Kingfisher board based on r8a7795 ES2.0+ (DT)
	Workqueue: events deferred_probe_work_func
	pstate: 60000005 (nZCv daif -PAN -UAO)
	pc : soc_find_component+0xb8/0xc0
	lr : soc_find_component+0xb4/0xc0
	sp : ffff00001217ba10
	x29: ffff00001217ba10 x28: 0000000000000000 
	x27: ffff000010a82920 x26: 0000000000000000 
	x25: ffff8006f9c59900 x24: ffff0000105f33a0 
	x23: ffff000010948d70 x22: 0000000000000000 
	x21: ffff000010af1720 x20: ffff8006ff80b6d8 
	x19: ffff8006f8523080 x18: 0000000000000010 
	x17: 0000000000000000 x16: 0000000000000000 
	x15: ffffffffffffffff x14: 0720072007200720 
	x13: 0720072007200720 x12: 0720072007200720 
	x11: 0720072007200720 x10: 0720072007200720 
	x9 : 0000000000000000 x8 : ffff000010a85000 
	x7 : ffff000010114bd4 x6 : 0000000000000001 
	x5 : 0000000000000018 x4 : 0000000000000001 
	x3 : 0000000000000000 x2 : 0000000000000003 
	x1 : ffff000010af17b0 x0 : 0000000000000000 
	Call trace:
	 soc_find_component+0xb8/0xc0
	 soc_init_dai_link+0x18c/0x210
	 snd_soc_register_card.part.16+0x138/0x198
	 snd_soc_register_card+0x30/0x48
	 devm_snd_soc_register_card+0x4c/0xa0
	 graph_probe+0x2d8/0x388
	 platform_drv_probe+0x58/0xa8
	 really_probe+0x1c0/0x2a0
	 driver_probe_device+0x5c/0xf0
	 __device_attach_driver+0x9c/0xe0
	...

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [alsa-devel] Applied "ASoC: soc-core: defer card probe until all component is added to list" to the asoc tree
  2019-01-10  2:32   ` [alsa-devel] " Kuninori Morimoto
@ 2019-01-10  7:09     ` Rohit Kumar
  2019-01-10  7:29       ` Kuninori Morimoto
  0 siblings, 1 reply; 7+ messages in thread
From: Rohit Kumar @ 2019-01-10  7:09 UTC (permalink / raw)
  To: Kuninori Morimoto, Mark Brown
  Cc: Ajit Pandey, rohkumar, alsa-devel, bgoswami, vinod.koul,
	linux-kernel, plai, tiwai, lgirdwood, asishb,
	srinivas.kandagatla

Thanks Kuninori for reporting the issue.

On 1/10/2019 8:02 AM, Kuninori Morimoto wrote:
> Hi Mark, Ajit
>
>> From: Ajit Pandey <ajitp@codeaurora.org>
>> Date: Wed, 9 Jan 2019 14:17:07 +0530
>> Subject: [PATCH] ASoC: soc-core: defer card probe until all component is added
>>   to list
>>
>> DAI component probe is not called if it is not present
>> in component list during sound card registration.
>> Check if component is available in component list for
>> platform and cpu dai before soundcard registration.
>>
>> Signed-off-by: Ajit Pandey <ajitp@codeaurora.org>
>> Signed-off-by: Rohit kumar <rohitkr@codeaurora.org>
>> Signed-off-by: Mark Brown <broonie@kernel.org>
>> ---
> I got below WARNING by this patch.
> I guess we need mutex_lock() on snd_soc_register_card() ?

Right, we should have client_mutex lock before calling 
soc_find_component().

We will post fix.

>
> 	...
> 	[drm] Device feb00000.display probed
> 	[drm] Cannot find any crtc or sizes
> 	[drm] Cannot find any crtc or sizes
> 	WARNING: CPU: 0 PID: 76 at sound/soc/soc-core.c:739 soc_find_component+0xb8/0xc0
> 	CPU: 0 PID: 76 Comm: kworker/0:1 Not tainted 5.0.0-rc1+ #1360
> 	Hardware name: Renesas H3ULCB Kingfisher board based on r8a7795 ES2.0+ (DT)
> 	Workqueue: events deferred_probe_work_func
> 	pstate: 60000005 (nZCv daif -PAN -UAO)
> 	pc : soc_find_component+0xb8/0xc0
> 	lr : soc_find_component+0xb4/0xc0
> 	sp : ffff00001217ba10
> 	x29: ffff00001217ba10 x28: 0000000000000000
> 	x27: ffff000010a82920 x26: 0000000000000000
> 	x25: ffff8006f9c59900 x24: ffff0000105f33a0
> 	x23: ffff000010948d70 x22: 0000000000000000
> 	x21: ffff000010af1720 x20: ffff8006ff80b6d8
> 	x19: ffff8006f8523080 x18: 0000000000000010
> 	x17: 0000000000000000 x16: 0000000000000000
> 	x15: ffffffffffffffff x14: 0720072007200720
> 	x13: 0720072007200720 x12: 0720072007200720
> 	x11: 0720072007200720 x10: 0720072007200720
> 	x9 : 0000000000000000 x8 : ffff000010a85000
> 	x7 : ffff000010114bd4 x6 : 0000000000000001
> 	x5 : 0000000000000018 x4 : 0000000000000001
> 	x3 : 0000000000000000 x2 : 0000000000000003
> 	x1 : ffff000010af17b0 x0 : 0000000000000000
> 	Call trace:
> 	 soc_find_component+0xb8/0xc0
> 	 soc_init_dai_link+0x18c/0x210
> 	 snd_soc_register_card.part.16+0x138/0x198
> 	 snd_soc_register_card+0x30/0x48
> 	 devm_snd_soc_register_card+0x4c/0xa0
> 	 graph_probe+0x2d8/0x388
> 	 platform_drv_probe+0x58/0xa8
> 	 really_probe+0x1c0/0x2a0
> 	 driver_probe_device+0x5c/0xf0
> 	 __device_attach_driver+0x9c/0xe0
> 	...

Regards,
Rohit
-- 
Qualcomm INDIA, on behalf of Qualcomm Innovation Center, Inc.is a member
of the Code Aurora Forum, hosted by the Linux Foundation.


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [alsa-devel] Applied "ASoC: soc-core: defer card probe until all component is added to list" to the asoc tree
  2019-01-10  7:09     ` Rohit Kumar
@ 2019-01-10  7:29       ` Kuninori Morimoto
  0 siblings, 0 replies; 7+ messages in thread
From: Kuninori Morimoto @ 2019-01-10  7:29 UTC (permalink / raw)
  To: Rohit Kumar
  Cc: Mark Brown, Ajit Pandey, rohkumar, alsa-devel, bgoswami,
	vinod.koul, linux-kernel, plai, tiwai, lgirdwood, asishb,
	srinivas.kandagatla


Hi Rohit

> > I got below WARNING by this patch.
> > I guess we need mutex_lock() on snd_soc_register_card() ?
> 
> Right, we should have client_mutex lock before calling
> soc_find_component().
> 
> We will post fix.

Thanks !!

Best regards
---
Kuninori Morimoto

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [alsa-devel] [PATCH v2] ASoC: soc-core: defer card probe until all component is added to list
  2019-01-09  8:47 [PATCH v2] ASoC: soc-core: defer card probe until all component is added to list Rohit kumar
  2019-01-09 12:49 ` Applied "ASoC: soc-core: defer card probe until all component is added to list" to the asoc tree Mark Brown
@ 2019-01-11  5:07 ` Pierre-Louis Bossart
  2019-01-11  8:11   ` Rohit Kumar
  1 sibling, 1 reply; 7+ messages in thread
From: Pierre-Louis Bossart @ 2019-01-11  5:07 UTC (permalink / raw)
  To: Rohit kumar, plai, bgoswami, asishb, lgirdwood, broonie, perex,
	tiwai, alsa-devel, linux-kernel, rohkumar, srinivas.kandagatla,
	vinod.koul
  Cc: Ajit Pandey

While debugging Skylake audio stuff, I came across a kernel oops 
introduced by this commit.

It's quite late here and my brain is fried, submitting as is but my 
money is on the use of link->platform->of_node which is quite unlikely 
to work on ACPI platforms.

and btw you may want to fix the typos, it's registration, not registartion.

-Pierre

8780cf1142a59568a3aa77959cbd76b2edb6fd81 is the first bad commit
commit 8780cf1142a59568a3aa77959cbd76b2edb6fd81
Author: Ajit Pandey <ajitp@codeaurora.org>
Date:   Wed Jan 9 14:17:07 2019 +0530

     ASoC: soc-core: defer card probe until all component is added to list

     DAI component probe is not called if it is not present
     in component list during sound card registration.
     Check if component is available in component list for
     platform and cpu dai before soundcard registration.

     Signed-off-by: Ajit Pandey <ajitp@codeaurora.org>
     Signed-off-by: Rohit kumar <rohitkr@codeaurora.org>
     Signed-off-by: Mark Brown <broonie@kernel.org>

:040000 040000 98da59b0a73551030a0c9030b8cd58114003c82b 
48f0618f37a16dcfea5999ecd9743edbb0763594 M    sound

[    2.686029] HDMI HDA Codec ehdaudio0D2: Max dais supported: 3
[    2.687854] BUG: unable to handle kernel NULL pointer dereference at 
0000000000000000
[    2.687858] PGD 0 P4D 0
[    2.687862] Oops: 0000 [#1] SMP PTI
[    2.687866] CPU: 1 PID: 1647 Comm: systemd-udevd Not tainted 
4.20.0-rc7-test+ #88
[    2.687867] Hardware name: Dell Inc. XPS 13 9350/07TYC2, BIOS 1.0.0 
09/10/2015
[    2.687872] RIP: 0010:strcmp+0xc/0x20
[    2.687875] Code: 75 f7 48 83 c6 01 0f b6 4e ff 48 83 c2 01 84 c9 88 
4a ff 75 ed f3 c3 0f 1f 80 00 00 00 00 48 83 c7 01 0f b6 47 ff 48 83 c6 
01 <3a> 46 ff 75 07 84 c0 75 eb 31 c0 c3 19 c0 83 c8 01 c3 66 90 48 85
[    2.687877] RSP: 0018:ffff9fadc104bb18 EFLAGS: 00010202
[    2.687880] RAX: 0000000000000065 RBX: ffff9d6834ba5428 RCX: 
0000000000000001
[    2.687882] RDX: ffffffffc0288d00 RSI: 0000000000000001 RDI: 
ffff9d68351b5a61
[    2.687883] RBP: 0000000000000000 R08: 0000000000000001 R09: 
ffff9d6836dbfd80
[    2.687885] R10: 0000000000000000 R11: ffff9d6835e65648 R12: 
0000000000000000
[    2.687887] R13: 0000000000000000 R14: 0000000000000000 R15: 
ffff9fadc104be98
[    2.687889] FS:  00007f976806a8c0(0000) GS:ffff9d6838a80000(0000) 
knlGS:0000000000000000
[    2.687891] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[    2.687893] CR2: 0000000000000000 CR3: 00000002b4286002 CR4: 
00000000003606e0
[    2.687895] Call Trace:
[    2.687902]  soc_find_component+0x4c/0x70 [snd_soc_core]
[    2.687908]  soc_init_dai_link+0x124/0x280 [snd_soc_core]
[    2.687913]  snd_soc_register_card+0x6b/0x1f0 [snd_soc_core]
[    2.687918]  ? __devres_alloc_node+0x2c/0x60
[    2.687922]  devm_snd_soc_register_card+0x3e/0x80 [snd_soc_core]
[    2.687926]  platform_drv_probe+0x35/0x90
[    2.687930]  ? driver_sysfs_add+0x70/0xd0
[    2.687932]  really_probe+0xee/0x2e0
[    2.687935]  driver_probe_device+0x4a/0xe0
[    2.687938]  __driver_attach+0xac/0xb0
[    2.687941]  ? driver_probe_device+0xe0/0xe0
[    2.687943]  bus_for_each_dev+0x71/0xb0
[    2.687946]  bus_add_driver+0x191/0x210
[    2.687948]  ? 0xffffffffc01bf000
[    2.687951]  driver_register+0x56/0xe0
[    2.687953]  ? 0xffffffffc01bf000
[    2.687956]  do_one_initcall+0x41/0x1b8
[    2.687960]  ? kobject_uevent_env+0x101/0x680
[    2.687962]  ? _cond_resched+0x10/0x40
[    2.687966]  ? kmem_cache_alloc_trace+0x35/0x160
[    2.687969]  do_init_module+0x56/0x1db
[    2.687973]  load_module+0x1e7c/0x2560
[    2.687976]  ? vfs_read+0x10a/0x130
[    2.687979]  ? __do_sys_finit_module+0xba/0xe0
[    2.687983]  __do_sys_finit_module+0xba/0xe0
[    2.687988]  do_syscall_64+0x43/0xf0
[    2.687992]  entry_SYSCALL_64_after_hwframe+0x44/0xa9
[    2.687995] RIP: 0033:0x7f9768aef219
[    2.687998] Code: 00 c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 44 00 00 
48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 
05 <48> 3d 01 f0 ff ff 73 01 c3 48 8b 0d 47 fc 0c 00 f7 d8 64 89 01 48
[    2.688000] RSP: 002b:00007ffccf3a4c98 EFLAGS: 00000246 ORIG_RAX: 
0000000000000139
[    2.688003] RAX: ffffffffffffffda RBX: 000055991cf57970 RCX: 
00007f9768aef219
[    2.688006] RDX: 0000000000000000 RSI: 00007f97689d3cad RDI: 
000000000000000f
[    2.688008] RBP: 00007f97689d3cad R08: 0000000000000000 R09: 
0000000000000000
[    2.688010] R10: 000000000000000f R11: 0000000000000246 R12: 
0000000000000000
[    2.688012] R13: 000055991cf49930 R14: 0000000000020000 R15: 
000055991cf57970
[    2.688015] Modules linked in: snd_soc_skl_hda_dsp(+) 
snd_soc_hdac_hdmi snd_soc_dmic ax88179_178a(+) usbnet 
snd_hda_codec_realtek snd_hda_codec_generic snd_soc_skl snd_soc_hdac_hda 
snd_hda_ext_core snd_soc_skl_ipc x86_pkg_temp_thermal snd_soc_sst_ipc 
snd_soc_sst_dsp snd_soc_acpi_intel_match snd_soc_acpi snd_soc_core 
snd_compress snd_hda_codec snd_hwdep snd_hda_core snd_pcm efivarfs 
intel_lpss_pci xhci_pci intel_lpss mfd_core xhci_hcd
[    2.688031] CR2: 0000000000000000
[    2.688034] ---[ end trace 8b96d01935d9effd ]---
[    2.688037] RIP: 0010:strcmp+0xc/0x20
[    2.688039] Code: 75 f7 48 83 c6 01 0f b6 4e ff 48 83 c2 01 84 c9 88 
4a ff 75 ed f3 c3 0f 1f 80 00 00 00 00 48 83 c7 01 0f b6 47 ff 48 83 c6 
01 <3a> 46 ff 75 07 84 c0 75 eb 31 c0 c3 19 c0 83 c8 01 c3 66 90 48 85
[    2.688042] RSP: 0018:ffff9fadc104bb18 EFLAGS: 00010202
[    2.688044] RAX: 0000000000000065 RBX: ffff9d6834ba5428 RCX: 
0000000000000001
[    2.688046] RDX: ffffffffc0288d00 RSI: 0000000000000001 RDI: 
ffff9d68351b5a61
[    2.688048] RBP: 0000000000000000 R08: 0000000000000001 R09: 
ffff9d6836dbfd80
[    2.688050] R10: 0000000000000000 R11: ffff9d6835e65648 R12: 
0000000000000000
[    2.688052] R13: 0000000000000000 R14: 0000000000000000 R15: 
ffff9fadc104be98
[    2.688055] FS:  00007f976806a8c0(0000) GS:ffff9d6838a80000(0000) 
knlGS:0000000000000000
[    2.688057] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[    2.688059] CR2: 0000000000000000 CR3: 00000002b4286002 CR4: 
00000000003606e0


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [alsa-devel] [PATCH v2] ASoC: soc-core: defer card probe until all component is added to list
  2019-01-11  5:07 ` [alsa-devel] [PATCH v2] ASoC: soc-core: defer card probe until all component is added to list Pierre-Louis Bossart
@ 2019-01-11  8:11   ` Rohit Kumar
  0 siblings, 0 replies; 7+ messages in thread
From: Rohit Kumar @ 2019-01-11  8:11 UTC (permalink / raw)
  To: Pierre-Louis Bossart, plai, bgoswami, asishb, lgirdwood, broonie,
	perex, tiwai, alsa-devel, linux-kernel, rohkumar,
	srinivas.kandagatla, vinod.koul
  Cc: Ajit Pandey

Thanks Pierre for reporting the issue.

On 1/11/2019 10:37 AM, Pierre-Louis Bossart wrote:
> While debugging Skylake audio stuff, I came across a kernel oops 
> introduced by this commit.
>
> It's quite late here and my brain is fried, submitting as is but my 
> money is on the use of link->platform->of_node which is quite unlikely 
> to work on ACPI platforms.
>

Right, either name or of_node should not be NULL for soc_find_component.

We will provide fix.

> and btw you may want to fix the typos, it's registration, not 
> registartion.


Sure.

>
> -Pierre
>
> 8780cf1142a59568a3aa77959cbd76b2edb6fd81 is the first bad commit
> commit 8780cf1142a59568a3aa77959cbd76b2edb6fd81
> Author: Ajit Pandey <ajitp@codeaurora.org>
> Date:   Wed Jan 9 14:17:07 2019 +0530
>
>     ASoC: soc-core: defer card probe until all component is added to list
>
>     DAI component probe is not called if it is not present
>     in component list during sound card registration.
>     Check if component is available in component list for
>     platform and cpu dai before soundcard registration.
>
>     Signed-off-by: Ajit Pandey <ajitp@codeaurora.org>
>     Signed-off-by: Rohit kumar <rohitkr@codeaurora.org>
>     Signed-off-by: Mark Brown <broonie@kernel.org>
>
> :040000 040000 98da59b0a73551030a0c9030b8cd58114003c82b 
> 48f0618f37a16dcfea5999ecd9743edbb0763594 M    sound
>
> [    2.686029] HDMI HDA Codec ehdaudio0D2: Max dais supported: 3
> [    2.687854] BUG: unable to handle kernel NULL pointer dereference 
> at 0000000000000000
> [    2.687858] PGD 0 P4D 0
> [    2.687862] Oops: 0000 [#1] SMP PTI
> [    2.687866] CPU: 1 PID: 1647 Comm: systemd-udevd Not tainted 
> 4.20.0-rc7-test+ #88
> [    2.687867] Hardware name: Dell Inc. XPS 13 9350/07TYC2, BIOS 1.0.0 
> 09/10/2015
> [    2.687872] RIP: 0010:strcmp+0xc/0x20
> [    2.687875] Code: 75 f7 48 83 c6 01 0f b6 4e ff 48 83 c2 01 84 c9 
> 88 4a ff 75 ed f3 c3 0f 1f 80 00 00 00 00 48 83 c7 01 0f b6 47 ff 48 
> 83 c6 01 <3a> 46 ff 75 07 84 c0 75 eb 31 c0 c3 19 c0 83 c8 01 c3 66 90 
> 48 85
> [    2.687877] RSP: 0018:ffff9fadc104bb18 EFLAGS: 00010202
> [    2.687880] RAX: 0000000000000065 RBX: ffff9d6834ba5428 RCX: 
> 0000000000000001
> [    2.687882] RDX: ffffffffc0288d00 RSI: 0000000000000001 RDI: 
> ffff9d68351b5a61
> [    2.687883] RBP: 0000000000000000 R08: 0000000000000001 R09: 
> ffff9d6836dbfd80
> [    2.687885] R10: 0000000000000000 R11: ffff9d6835e65648 R12: 
> 0000000000000000
> [    2.687887] R13: 0000000000000000 R14: 0000000000000000 R15: 
> ffff9fadc104be98
> [    2.687889] FS:  00007f976806a8c0(0000) GS:ffff9d6838a80000(0000) 
> knlGS:0000000000000000
> [    2.687891] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> [    2.687893] CR2: 0000000000000000 CR3: 00000002b4286002 CR4: 
> 00000000003606e0
> [    2.687895] Call Trace:
> [    2.687902]  soc_find_component+0x4c/0x70 [snd_soc_core]
> [    2.687908]  soc_init_dai_link+0x124/0x280 [snd_soc_core]
> [    2.687913]  snd_soc_register_card+0x6b/0x1f0 [snd_soc_core]
> [    2.687918]  ? __devres_alloc_node+0x2c/0x60
> [    2.687922]  devm_snd_soc_register_card+0x3e/0x80 [snd_soc_core]
> [    2.687926]  platform_drv_probe+0x35/0x90
> [    2.687930]  ? driver_sysfs_add+0x70/0xd0
> [    2.687932]  really_probe+0xee/0x2e0
> [    2.687935]  driver_probe_device+0x4a/0xe0
> [    2.687938]  __driver_attach+0xac/0xb0
> [    2.687941]  ? driver_probe_device+0xe0/0xe0
> [    2.687943]  bus_for_each_dev+0x71/0xb0
> [    2.687946]  bus_add_driver+0x191/0x210
> [    2.687948]  ? 0xffffffffc01bf000
> [    2.687951]  driver_register+0x56/0xe0
> [    2.687953]  ? 0xffffffffc01bf000
> [    2.687956]  do_one_initcall+0x41/0x1b8
> [    2.687960]  ? kobject_uevent_env+0x101/0x680
> [    2.687962]  ? _cond_resched+0x10/0x40
> [    2.687966]  ? kmem_cache_alloc_trace+0x35/0x160
> [    2.687969]  do_init_module+0x56/0x1db
> [    2.687973]  load_module+0x1e7c/0x2560
> [    2.687976]  ? vfs_read+0x10a/0x130
> [    2.687979]  ? __do_sys_finit_module+0xba/0xe0
> [    2.687983]  __do_sys_finit_module+0xba/0xe0
> [    2.687988]  do_syscall_64+0x43/0xf0
> [    2.687992]  entry_SYSCALL_64_after_hwframe+0x44/0xa9
> [    2.687995] RIP: 0033:0x7f9768aef219
> [    2.687998] Code: 00 c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 44 00 
> 00 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 
> 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 8b 0d 47 fc 0c 00 f7 d8 64 89 
> 01 48
> [    2.688000] RSP: 002b:00007ffccf3a4c98 EFLAGS: 00000246 ORIG_RAX: 
> 0000000000000139
> [    2.688003] RAX: ffffffffffffffda RBX: 000055991cf57970 RCX: 
> 00007f9768aef219
> [    2.688006] RDX: 0000000000000000 RSI: 00007f97689d3cad RDI: 
> 000000000000000f
> [    2.688008] RBP: 00007f97689d3cad R08: 0000000000000000 R09: 
> 0000000000000000
> [    2.688010] R10: 000000000000000f R11: 0000000000000246 R12: 
> 0000000000000000
> [    2.688012] R13: 000055991cf49930 R14: 0000000000020000 R15: 
> 000055991cf57970
> [    2.688015] Modules linked in: snd_soc_skl_hda_dsp(+) 
> snd_soc_hdac_hdmi snd_soc_dmic ax88179_178a(+) usbnet 
> snd_hda_codec_realtek snd_hda_codec_generic snd_soc_skl 
> snd_soc_hdac_hda snd_hda_ext_core snd_soc_skl_ipc x86_pkg_temp_thermal 
> snd_soc_sst_ipc snd_soc_sst_dsp snd_soc_acpi_intel_match snd_soc_acpi 
> snd_soc_core snd_compress snd_hda_codec snd_hwdep snd_hda_core snd_pcm 
> efivarfs intel_lpss_pci xhci_pci intel_lpss mfd_core xhci_hcd
> [    2.688031] CR2: 0000000000000000
> [    2.688034] ---[ end trace 8b96d01935d9effd ]---
> [    2.688037] RIP: 0010:strcmp+0xc/0x20
> [    2.688039] Code: 75 f7 48 83 c6 01 0f b6 4e ff 48 83 c2 01 84 c9 
> 88 4a ff 75 ed f3 c3 0f 1f 80 00 00 00 00 48 83 c7 01 0f b6 47 ff 48 
> 83 c6 01 <3a> 46 ff 75 07 84 c0 75 eb 31 c0 c3 19 c0 83 c8 01 c3 66 90 
> 48 85
> [    2.688042] RSP: 0018:ffff9fadc104bb18 EFLAGS: 00010202
> [    2.688044] RAX: 0000000000000065 RBX: ffff9d6834ba5428 RCX: 
> 0000000000000001
> [    2.688046] RDX: ffffffffc0288d00 RSI: 0000000000000001 RDI: 
> ffff9d68351b5a61
> [    2.688048] RBP: 0000000000000000 R08: 0000000000000001 R09: 
> ffff9d6836dbfd80
> [    2.688050] R10: 0000000000000000 R11: ffff9d6835e65648 R12: 
> 0000000000000000
> [    2.688052] R13: 0000000000000000 R14: 0000000000000000 R15: 
> ffff9fadc104be98
> [    2.688055] FS:  00007f976806a8c0(0000) GS:ffff9d6838a80000(0000) 
> knlGS:0000000000000000
> [    2.688057] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> [    2.688059] CR2: 0000000000000000 CR3: 00000002b4286002 CR4: 
> 00000000003606e0
>
Thanks,

Rohit

-- 
Qualcomm INDIA, on behalf of Qualcomm Innovation Center, Inc.is a member
of the Code Aurora Forum, hosted by the Linux Foundation.


^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2019-01-11  8:12 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-01-09  8:47 [PATCH v2] ASoC: soc-core: defer card probe until all component is added to list Rohit kumar
2019-01-09 12:49 ` Applied "ASoC: soc-core: defer card probe until all component is added to list" to the asoc tree Mark Brown
2019-01-10  2:32   ` [alsa-devel] " Kuninori Morimoto
2019-01-10  7:09     ` Rohit Kumar
2019-01-10  7:29       ` Kuninori Morimoto
2019-01-11  5:07 ` [alsa-devel] [PATCH v2] ASoC: soc-core: defer card probe until all component is added to list Pierre-Louis Bossart
2019-01-11  8:11   ` Rohit Kumar

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).