From: Aniroop Mathur <a.mathur@xxxxxxxxxxx> clk_type and clkid stores different predefined clock identification values so they cannot be compared. Therefore, lets fix it to avoid unexpected results. Signed-off-by: Aniroop Mathur <a.mathur@xxxxxxxxxxx> Signed-off-by: Aniroop Mathur <aniroop.mathur@xxxxxxxxx> --- drivers/input/evdev.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/drivers/input/evdev.c b/drivers/input/evdev.c index 08d4964..0d40f6f 100644 --- a/drivers/input/evdev.c +++ b/drivers/input/evdev.c @@ -56,7 +56,7 @@ struct evdev_client { struct fasync_struct *fasync; struct evdev *evdev; struct list_head node; - int clk_type; + unsigned int clk_type; bool revoked; unsigned int bufsize; struct input_event buffer[]; @@ -146,9 +146,7 @@ static void evdev_queue_syn_dropped(struct evdev_client *client) static int evdev_set_clk_type(struct evdev_client *client, unsigned int clkid) { unsigned long flags; - - if (client->clk_type == clkid) - return 0; + unsigned int prev_clk_type = client->clk_type; switch (clkid) { @@ -165,6 +163,10 @@ static int evdev_set_clk_type(struct evdev_client *client, unsigned int clkid) return -EINVAL; } + /* No need to flush if clk_type is same as before */ + if (client->clk_type == prev_clk_type) + return 0; + /* * Flush pending events and queue SYN_DROPPED event, * but only if the queue is not empty. -- 2.6.2 -- To unsubscribe from this list: send the line "unsubscribe linux-input" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html