"Gaurav Jindal (Gaurav Jindal)" <gaurav.jin...@spreadtrum.com> writes:
> diff --git a/kernel/time/tick-common.c b/kernel/time/tick-common.c
> index 4fcd99e..23faf4a 100644
> --- a/kernel/time/tick-common.c
> +++ b/kernel/time/tick-common.c
> @@ -307,6 +307,9 @@ void tick_check_new_device(struct clock_event_device 
> *newdev)
>       td = &per_cpu(tick_cpu_device, cpu);
>       curdev = td->evtdev;


>
> +     if (!try_module_get(newdev->owner))
> +             return;
> +

Doesn't this leak a reference to newdev->owner if one of the following
conditions hold?

>       /* cpu local device ? */
>       if (!tick_check_percpu(curdev, newdev, cpu))
>               goto out_bc;
> @@ -315,8 +318,6 @@ void tick_check_new_device(struct clock_event_device 
> *newdev)
>       if (!tick_check_preferred(curdev, newdev))
>               goto out_bc;



> -     if (!try_module_get(newdev->owner))
> -             return;
>

Thanks,

Nicolai

Reply via email to