Re: [PATCH] devres: Freeing the drs after all release() are called

2013-11-06 Thread Greg KH
: Greg KH; dmitry.torok...@gmail.com; linux-kernel@vger.kernel.org > > Subject: Re: [PATCH] devres: Freeing the drs after all release() are called > > > > Hello, > > > > On Thu, Nov 07, 2013 at 12:36:56AM +, Liu, Chuansheng wrote: > > > Yes, I k

RE: [PATCH] devres: Freeing the drs after all release() are called

2013-11-06 Thread Liu, Chuansheng
Hello, > -Original Message- > From: Tejun Heo [mailto:hte...@gmail.com] On Behalf Of t...@kernel.org > Sent: Thursday, November 07, 2013 8:52 AM > To: Liu, Chuansheng > Cc: Greg KH; dmitry.torok...@gmail.com; linux-kernel@vger.kernel.org > Subject: Re: [PATCH] devre

RE: [PATCH] devres: Freeing the drs after all release() are called

2013-11-06 Thread Liu, Chuansheng
> -Original Message- > From: Dmitry Torokhov [mailto:dmitry.torok...@gmail.com] > Sent: Thursday, November 07, 2013 8:47 AM > To: Liu, Chuansheng > Cc: t...@kernel.org; Greg KH; linux-kernel@vger.kernel.org > Subject: Re: [PATCH] devres: Freeing the drs after all re

Re: [PATCH] devres: Freeing the drs after all release() are called

2013-11-06 Thread t...@kernel.org
Hello, On Thu, Nov 07, 2013 at 12:36:56AM +, Liu, Chuansheng wrote: > Yes, I knew I can put the code always like below: > A = devm_kzalloc(); > C = devm_kzalloc(); > ... > B= devm_request_threaded_irq(isr_handler); > > But, the above is just one simple coding prototype, if there are many call

Re: [PATCH] devres: Freeing the drs after all release() are called

2013-11-06 Thread Dmitry Torokhov
KH; dmitry.torok...@gmail.com; linux-kernel@vger.kernel.org > > Subject: Re: [PATCH] devres: Freeing the drs after all release() are called > > > > Hello, Liu. > > > > On Thu, Nov 07, 2013 at 12:27:56AM +, Liu, Chuansheng wrote: > > > The drive

RE: [PATCH] devres: Freeing the drs after all release() are called

2013-11-06 Thread Liu, Chuansheng
> -Original Message- > From: Tejun Heo [mailto:hte...@gmail.com] On Behalf Of t...@kernel.org > Sent: Thursday, November 07, 2013 8:30 AM > To: Liu, Chuansheng > Cc: Greg KH; dmitry.torok...@gmail.com; linux-kernel@vger.kernel.org > Subject: Re: [PATCH] devres: Freeing

Re: [PATCH] devres: Freeing the drs after all release() are called

2013-11-06 Thread t...@kernel.org
Hello, Liu. On Thu, Nov 07, 2013 at 12:27:56AM +, Liu, Chuansheng wrote: > The driver code is as below: > _INIT() { > > A = devm_kzalloc(); > B= devm_request_threaded_irq(isr_handler); > C = devm_kzalloc(); > } > > When driver _EXIT, the devres_release_all () will be called. > The C will be

RE: [PATCH] devres: Freeing the drs after all release() are called

2013-11-06 Thread Liu, Chuansheng
Hello Greg, > -Original Message- > From: Greg KH [mailto:gre...@linuxfoundation.org] > Sent: Wednesday, November 06, 2013 4:59 PM > To: Liu, Chuansheng > Cc: dmitry.torok...@gmail.com; t...@kernel.org; linux-kernel@vger.kernel.org > Subject: Re: [PATCH] devres: Freeing

Re: [PATCH] devres: Freeing the drs after all release() are called

2013-11-06 Thread Greg KH
On Wed, Nov 06, 2013 at 02:40:18PM +0800, Chuansheng Liu wrote: > > In release_nodes(), it will call dr->node.release() and kfree > dr one by one. > > But sometimes the previous dr maybe be used by next .release(), > such as: > [50314.855534] [] ? synchronize_irq+0x3f/0xb0 > [50314.861193] [] _

[PATCH] devres: Freeing the drs after all release() are called

2013-11-05 Thread Chuansheng Liu
In release_nodes(), it will call dr->node.release() and kfree dr one by one. But sometimes the previous dr maybe be used by next .release(), such as: [50314.855534] [] ? synchronize_irq+0x3f/0xb0 [50314.861193] [] __free_irq+0x149/0x200 [50314.866367] [] free_irq+0x43/0xa0 [50314.871152] [] d