在 16/6/30 下午7:45, Amitoj Kaur Chawla 写道:
> Convert a call to init_timer and accompanying intializations of
> the timer's data and function fields to a call to setup_timer.
> 
> The Coccinelle semantic patch that fixes one part of this issue
> is as follows:
> @@
> expression t,d,f,e1;
> identifier x1;
> statement S1;
> @@
> 
> (
> -t.data = d;
> |
> -t.function = f;
> |
> -init_timer(&t);
> +setup_timer(&t,f,d);
> |
> -init_timer_on_stack(&t);
> +setup_timer_on_stack(&t,f,d);
> )
> <... when != S1
> t.x1 = e1;
> ...>
> 
> Also convert calls to add_timer and intialisation of timer's expire
> field to a call to mod_timer which is more compact.
> 
> Signed-off-by: Amitoj Kaur Chawla <[email protected]>
> ---
>  drivers/md/bcache/stats.c | 7 ++-----
>  1 file changed, 2 insertions(+), 5 deletions(-)
> 
> diff --git a/drivers/md/bcache/stats.c b/drivers/md/bcache/stats.c
> index 0ca072c..094d6d6 100644
> --- a/drivers/md/bcache/stats.c
> +++ b/drivers/md/bcache/stats.c
> @@ -233,9 +233,6 @@ void bch_cache_accounting_init(struct cache_accounting 
> *acc,
>       kobject_init(&acc->day.kobj,            &bch_stats_ktype);
>  
>       closure_init(&acc->cl, parent);
> -     init_timer(&acc->timer);
> -     acc->timer.expires      = jiffies + accounting_delay;
> -     acc->timer.data         = (unsigned long) acc;
> -     acc->timer.function     = scale_accounting;
> -     add_timer(&acc->timer);
> +     setup_timer(&acc->timer, scale_accounting, (unsigned long) acc);
> +     mod_timer(&acc->timer, jiffies + accounting_delay);
>  }
> 

This patch uses new setup_timer() and mod_timer() interface to
initialize acc->timer. No change in functionality. It is OK to me.

Reviewed-by: Coly Li <[email protected]>

Coly

Reply via email to