Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input
[sfrench/cifs-2.6.git] / drivers / input / input.c
index b87ffbd4547dd2a50e80bfe1be52d540625d5cb7..d95c34ee5dc1430f5664e8b50d449f01c802ae4a 100644 (file)
@@ -153,8 +153,6 @@ static void input_pass_values(struct input_dev *dev,
 
        rcu_read_unlock();
 
-       add_input_randomness(vals->type, vals->code, vals->value);
-
        /* trigger auto repeat for key events */
        if (test_bit(EV_REP, dev->evbit) && test_bit(EV_KEY, dev->evbit)) {
                for (v = vals; v != vals + count; v++) {
@@ -371,9 +369,10 @@ static int input_get_disposition(struct input_dev *dev,
 static void input_handle_event(struct input_dev *dev,
                               unsigned int type, unsigned int code, int value)
 {
-       int disposition;
+       int disposition = input_get_disposition(dev, type, code, &value);
 
-       disposition = input_get_disposition(dev, type, code, &value);
+       if (disposition != INPUT_IGNORE_EVENT && type != EV_SYN)
+               add_input_randomness(type, code, value);
 
        if ((disposition & INPUT_PASS_TO_DEVICE) && dev->event)
                dev->event(dev, type, code, value);