Hi,

On Wed, 11 Mar 2009, Nishanth Menon wrote:

> clk_notifier_unregister should clean the list before
> freeing clock notifier, else clk_notifier_list is
> filled with dangling pointers
> 
> Issue seen while repetative loading/unloading of bridgedriver
> 
> Ref: http://marc.info/?t=123678326300002&r=1&w=2
> 
> Signed-off-by: Nishanth Menon <[email protected]>
> ---
>  arch/arm/plat-omap/clock.c |    5 ++++-
>  1 files changed, 4 insertions(+), 1 deletions(-)
> 
> diff --git a/arch/arm/plat-omap/clock.c b/arch/arm/plat-omap/clock.c
> index c8d9e96..523d1b0 100644
> --- a/arch/arm/plat-omap/clock.c
> +++ b/arch/arm/plat-omap/clock.c
> @@ -725,8 +725,11 @@ int clk_notifier_unregister(struct clk *clk, struct 
> notifier_block *nb)
>                * XXX ugh, layering violation.  there should be some
>                * support in the notifier code for this.
>                */
> -             if (!cn->notifier_head.head)
> +             if (!cn->notifier_head.head) {
> +                     /* Free up my clock node too */
> +                     list_del(&cn->node);
>                       kfree(cn);
> +             }
>  
>       } else {
>               r = -ENOENT;
> -- 
> 1.5.4.3
> 

Thanks, this looks good.

Just to clarify, this is currently against the PM branch.  There's a new 
version of the clock notifier patch coming out soon against l-o; will roll 
this fix in.


- Paul
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to