watchdog: cpwd: Convert timers to use timer_setup()
authorKees Cook <keescook@chromium.org>
Sat, 21 Oct 2017 05:47:37 +0000 (22:47 -0700)
committerKees Cook <keescook@chromium.org>
Thu, 2 Nov 2017 22:50:26 +0000 (15:50 -0700)
In preparation for unconditionally passing the struct timer_list pointer to
all timer callbacks, switch to using the new timer_setup() and from_timer()
to pass the timer pointer explicitly. Switches to using the global that is
used everywhere else.

Cc: Wim Van Sebroeck <wim@iguana.be>
Cc: linux-watchdog@vger.kernel.org
Signed-off-by: Kees Cook <keescook@chromium.org>
Reviewed-by: Guenter Roeck <linux@roeck-us.net>
drivers/watchdog/cpwd.c

index 3d43775548e59cda1966146897daa4b6d396b471..aee0b25cf10d9afd48604b943fa17d97a6fe6927 100644 (file)
@@ -230,9 +230,9 @@ static void cpwd_resetbrokentimer(struct cpwd *p, int index)
  * interrupts within the PLD so me must continually
  * reset the timers ad infinitum.
  */
-static void cpwd_brokentimer(unsigned long data)
+static void cpwd_brokentimer(struct timer_list *unused)
 {
-       struct cpwd *p = (struct cpwd *) data;
+       struct cpwd *p = cpwd_device;
        int id, tripped = 0;
 
        /* kill a running timer instance, in case we
@@ -275,7 +275,7 @@ static void cpwd_stoptimer(struct cpwd *p, int index)
 
                if (p->broken) {
                        p->devs[index].runstatus |= WD_STAT_BSTOP;
-                       cpwd_brokentimer((unsigned long) p);
+                       cpwd_brokentimer(NULL);
                }
        }
 }
@@ -608,7 +608,7 @@ static int cpwd_probe(struct platform_device *op)
        }
 
        if (p->broken) {
-               setup_timer(&cpwd_timer, cpwd_brokentimer, (unsigned long)p);
+               timer_setup(&cpwd_timer, cpwd_brokentimer, 0);
                cpwd_timer.expires      = WD_BTIMEOUT;
 
                pr_info("PLD defect workaround enabled for model %s\n",