2017-09-28 20:15:42

by Himanshu Jha

[permalink] [raw]
Subject: [PATCH] scsi: esas2r: Use setup_timer and mod_timer

Use setup_timer and mod_timer API instead of structure assignments.

This is done using Coccinelle and semantic patch used
for this as follows:

@@
expression x,y,z,a,b;
@@

-init_timer (&x);
+setup_timer (&x, y, z);
+mod_timer (&a, b);
-x.function = y;
-x.data = z;
-x.expires = b;
-add_timer(&a);

Signed-off-by: Himanshu Jha <[email protected]>
---
drivers/scsi/esas2r/esas2r_main.c | 10 ++--------
1 file changed, 2 insertions(+), 8 deletions(-)

diff --git a/drivers/scsi/esas2r/esas2r_main.c b/drivers/scsi/esas2r/esas2r_main.c
index 81f226b..1866ba0 100644
--- a/drivers/scsi/esas2r/esas2r_main.c
+++ b/drivers/scsi/esas2r/esas2r_main.c
@@ -1635,14 +1635,8 @@ static void esas2r_timer_callback(unsigned long context);

void esas2r_kickoff_timer(struct esas2r_adapter *a)
{
- init_timer(&a->timer);
-
- a->timer.function = esas2r_timer_callback;
- a->timer.data = (unsigned long)a;
- a->timer.expires = jiffies +
- msecs_to_jiffies(100);
-
- add_timer(&a->timer);
+ setup_timer(&a->timer, esas2r_timer_callback, (unsigned long)a);
+ mod_timer(&a->timer, jiffies + msecs_to_jiffies(100));
}

static void esas2r_timer_callback(unsigned long context)
--
2.7.4