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

Liao, Bard bard.liao at intel.com
Wed Sep 18 07:27:58 CEST 2019


> -----Original Message-----
> From: Kuninori Morimoto [mailto:kuninori.morimoto.gx at renesas.com]
> Sent: Wednesday, September 18, 2019 12:06 PM
> To: Liao, Bard <bard.liao at intel.com>
> Cc: Bard liao <yung-chuan.liao at linux.intel.com>; broonie at kernel.org;
> tiwai at suse.de; alsa-devel at alsa-project.org; pierre-
> louis.bossart at 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


More information about the Alsa-devel mailing list