aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/input/evdev.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/input/evdev.c')
-rw-r--r--drivers/input/evdev.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/drivers/input/evdev.c b/drivers/input/evdev.c
index dee6706038aa..2ee6c7a68bdc 100644
--- a/drivers/input/evdev.c
+++ b/drivers/input/evdev.c
@@ -59,7 +59,8 @@ static void evdev_pass_event(struct evdev_client *client,
59 client->head &= EVDEV_BUFFER_SIZE - 1; 59 client->head &= EVDEV_BUFFER_SIZE - 1;
60 spin_unlock(&client->buffer_lock); 60 spin_unlock(&client->buffer_lock);
61 61
62 kill_fasync(&client->fasync, SIGIO, POLL_IN); 62 if (event->type == EV_SYN)
63 kill_fasync(&client->fasync, SIGIO, POLL_IN);
63} 64}
64 65
65/* 66/*
@@ -277,6 +278,8 @@ static int evdev_open(struct inode *inode, struct file *file)
277 goto err_free_client; 278 goto err_free_client;
278 279
279 file->private_data = client; 280 file->private_data = client;
281 nonseekable_open(inode, file);
282
280 return 0; 283 return 0;
281 284
282 err_free_client: 285 err_free_client:
@@ -512,7 +515,7 @@ static long evdev_do_ioctl(struct file *file, unsigned int cmd,
512 struct input_absinfo abs; 515 struct input_absinfo abs;
513 struct ff_effect effect; 516 struct ff_effect effect;
514 int __user *ip = (int __user *)p; 517 int __user *ip = (int __user *)p;
515 int i, t, u, v; 518 unsigned int i, t, u, v;
516 int error; 519 int error;
517 520
518 switch (cmd) { 521 switch (cmd) {