Input: Convert timers to use timer_setup()
Subsystems (3)
PATCH 1/1 Input: Convert timers to use timer_setup()
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. Adds a pointer back to input device in byd driver.
---
This requires commit 686fef928bba ("timer: Prepare to change timer callback argument type") in v4.14-rc3, but should be otherwise stand-alone.
--- drivers/input/ff-memless.c | 8 ++++---- drivers/input/mouse/alps.c | 8 ++++---- drivers/input/mouse/byd.c | 10 ++++++---- 3 files changed, 14 insertions(+), 12 deletions(-)
drivers/input/ff-memless.c +4 -4
@@ -412,10 +412,10 @@ static void ml_play_effects(struct ml_device *ml)ml_schedule_timer (ml); } -static void ml_effect_timer (unsigned long timer_data) +static void ml_effect_timer (struct timer_list *t) { -struct input_dev *dev = (struct input_dev *)timer_data; -struct ml_device *ml = dev->ff->private; +struct ml_device *ml =from_timer (ml, t, timer); +struct input_dev *dev = ml->dev;unsigned long flags;pr_debug ("timer: updating effects\n" );
@@ -526,7 +526,7 @@ int input_ff_create_memless(struct input_dev *dev, void *data, ml->private = data; ml->play_effect = play_effect; ml->gain =0xffff ; -setup_timer (&ml->timer, ml_effect_timer, (unsigned long )dev); +timer_setup (&ml->timer, ml_effect_timer,0 );set_bit (FF_GAIN , dev->ffbit);
drivers/input/mouse/alps.c +4 -4
@@ -1587,10 +1587,10 @@ static psmouse_ret_t alps_handle_interleaved_ps2(struct psmouse *psmouse)return PSMOUSE_GOOD_DATA ; } -static void alps_flush_packet (unsigned long data) +static void alps_flush_packet (struct timer_list *t) { -struct psmouse *psmouse = (struct psmouse *)data; -struct alps_data *priv = psmouse->private; +struct alps_data *priv =from_timer (priv, t, timer); +struct psmouse *psmouse = priv->psmouse;serio_pause_rx (psmouse->ps2dev.serio);
@@ -2702,7 +2702,7 @@ static int alps_set_protocol(struct psmouse *psmouse, { psmouse->private = priv; -setup_timer (&priv->timer, alps_flush_packet, (unsigned long )psmouse); +timer_setup (&priv->timer, alps_flush_packet,0 ); priv->proto_version = protocol->version; priv->byte0 = protocol->byte0;
drivers/input/mouse/byd.c +6 -4
@@ -227,6 +227,7 @@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;
Signature · 6 lines
2.7.4 -- Kees Cook Pixel Security
Quoted 17 lines · On Thursday 05 October 2017 02:53:29 Kees Cook wrote:
In preparation for unconditionally passing the struct
timer_listpointer to all timer callbacks, switch to using the newtimer_setup()andfrom_timer()to pass the timer pointer explicitly. Adds a pointer back to input device in byd driver.Cc Dmitry Torokhov <[email protected]>Cc "Pali Rohár" <[email protected]>Cc Ben Gamari <[email protected]>Cc Paul Donohue <[email protected]>Cc Masaki Ota <[email protected]>Cc Thomas Gleixner <[email protected]>Signed-off-by Kees Cook <[email protected]>---
This requires commit686fef928bba("timer: Prepare to change timer callback argument type") in v4.14-rc3, but should be otherwise stand-alone.
Quoted 5 lines
--- drivers/input/ff-memless.c | 8 ++++---- drivers/input/mouse/alps.c | 8 ++++---- drivers/input/mouse/byd.c | 10 ++++++---- 3 files changed, 14 insertions(+), 12 deletions(-)
Looks good,
Signature · 2 lines
Pali Rohár [email protected]