vcs: make proper usage of the poll flags
authorNicolas Pitre <nicolas.pitre@canonical.com>
Wed, 10 Nov 2010 06:33:12 +0000 (01:33 -0500)
committerGreg Kroah-Hartman <gregkh@suse.de>
Thu, 11 Nov 2010 18:51:35 +0000 (10:51 -0800)
Kay Sievers pointed out that usage of POLLIN is well defined by POSIX,
and the current usage here doesn't follow that definition.  So let's
duplicate the same semantics as implemented by sysfs_poll() instead.

Signed-off-by: Nicolas Pitre <nicolas.pitre@canonical.com>
Acked-by: Kay Sievers <kay.sievers@vrfy.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/tty/vt/vc_screen.c

index 273ab44cc91d7510e4e779da98c5e13ebbbbe867..eab3a1ff99e43c2468d35a3c770154e80a9bf7cd 100644 (file)
@@ -553,12 +553,12 @@ static unsigned int
 vcs_poll(struct file *file, poll_table *wait)
 {
        struct vcs_poll_data *poll = vcs_poll_data_get(file);
-       int ret = 0;
+       int ret = DEFAULT_POLLMASK|POLLERR|POLLPRI;
 
        if (poll) {
                poll_wait(file, &poll->waitq, wait);
-               if (!poll->seen_last_update)
-                       ret = POLLIN | POLLRDNORM;
+               if (poll->seen_last_update)
+                       ret = DEFAULT_POLLMASK;
        }
        return ret;
 }