-----Original Message----- From: Kuninori Morimoto [mailto:kuninori.morimoto.gx@renesas.com] Sent: Wednesday, September 18, 2019 12:06 PM To: Liao, Bard bard.liao@intel.com Cc: Bard liao yung-chuan.liao@linux.intel.com; broonie@kernel.org; tiwai@suse.de; alsa-devel@alsa-project.org; pierre- louis.bossart@linux.intel.com Subject: Re: [PATCH] ASoC: core: delete component->card_list in soc_remove_component only
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.
Thanks Morimoto san, I verified the solution works and agree with you. Will you send a patch to upstream?
Thank you for your help !! Best regards
Kuninori Morimoto