summaryrefslogtreecommitdiffstats
path: root/drivers/input
diff options
context:
space:
mode:
authorDima Zavin <dima@android.com>2011-12-31 00:16:44 +0100
committerDmitry Torokhov <dmitry.torokhov@gmail.com>2011-12-31 00:26:35 +0100
commite90f869cae3b4aedf0f6d2ca8048d60245ee77f7 (patch)
tree9afd751f1f9bdbd2623e065054aafc8cdfdb41eb /drivers/input
parentInput: evdev - only allow reading events if a full packet is present (diff)
downloadlinux-e90f869cae3b4aedf0f6d2ca8048d60245ee77f7.tar.xz
linux-e90f869cae3b4aedf0f6d2ca8048d60245ee77f7.zip
Input: evdev - if no events and non-block, return EAGAIN not 0
Signed-off-by: Dima Zavin <dima@android.com> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
Diffstat (limited to 'drivers/input')
-rw-r--r--drivers/input/evdev.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/input/evdev.c b/drivers/input/evdev.c
index 03344b3c7c15..a9d871651ce7 100644
--- a/drivers/input/evdev.c
+++ b/drivers/input/evdev.c
@@ -412,6 +412,9 @@ static ssize_t evdev_read(struct file *file, char __user *buffer,
retval += input_event_size();
}
+ if (retval == 0 && (file->f_flags & O_NONBLOCK))
+ return -EAGAIN;
+
return retval;
}