OSDN Git Service

Input: byd - convert to using timer_setup()
authorKees Cook <keescook@chromium.org>
Fri, 20 Oct 2017 00:22:46 +0000 (17:22 -0700)
committerDmitry Torokhov <dmitry.torokhov@gmail.com>
Mon, 23 Oct 2017 23:31:43 +0000 (16:31 -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.

Signed-off-by: Kees Cook <keescook@chromium.org>
Reviewed-by: Pali Rohár <pali.rohar@gmail.com>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
drivers/input/mouse/byd.c

index b64b815..f2aabf7 100644 (file)
 
 struct byd_data {
        struct timer_list timer;
+       struct psmouse *psmouse;
        s32 abs_x;
        s32 abs_y;
        typeof(jiffies) last_touch_time;
@@ -251,10 +252,10 @@ static void byd_report_input(struct psmouse *psmouse)
        input_sync(dev);
 }
 
-static void byd_clear_touch(unsigned long data)
+static void byd_clear_touch(struct timer_list *t)
 {
-       struct psmouse *psmouse = (struct psmouse *)data;
-       struct byd_data *priv = psmouse->private;
+       struct byd_data *priv = from_timer(priv, t, timer);
+       struct psmouse *psmouse = priv->psmouse;
 
        serio_pause_rx(psmouse->ps2dev.serio);
        priv->touch = false;
@@ -478,7 +479,8 @@ int byd_init(struct psmouse *psmouse)
        if (!priv)
                return -ENOMEM;
 
-       setup_timer(&priv->timer, byd_clear_touch, (unsigned long) psmouse);
+       priv->psmouse = psmouse;
+       timer_setup(&priv->timer, byd_clear_touch, 0);
 
        psmouse->private = priv;
        psmouse->disconnect = byd_disconnect;