[alsa-devel] [PATCH] ASoC: core: delete component->card_list in soc_remove_component only

Kuninori Morimoto kuninori.morimoto.gx at renesas.com
Wed Sep 18 06:06:11 CEST 2019


Hi Liao

Thank you for your feedback

> > I tried to create an error on purpose at soc_probe_component(), but, there was
> > no kernel oops, no warning, etc.
> > It just can't create sound card. It is very normal for me.
> > Or, which kernel are you using ?
> 
> Somehow I can only see the second attempt of component probe when it return
> -517 (EPROBE_DEFER) in the first attempt by using below kernel.
> https://github.com/plbossart/sound/commits/fix/soundwire-split-lookup-init
> 
> To me, the easiest way to see the issue is force return - EPROBE_DEFER on
> codec driver's probe function and call list_del(&component->card_list);
> before calling soc_cleanup_component(component);
> So list_del() will be called twice and you will see the issue.

OK, I could reproduce your issue.
And I think it will be solved if you can use
list_del_init() instead of list_del() at soc_cleanup_component() ?
(= without your patch)

	- list_del()
	+ list_del_init()

If possible, I want to cleanup all component related resource at
soc_cleanup_component(). Because it is easy to read / understand.

Thank you for your help !!
Best regards
---
Kuninori Morimoto


More information about the Alsa-devel mailing list