vcs: make proper usage of the poll flags
authorNicolas Pitre <[email protected]>
Wed, 10 Nov 2010 06:33:12 +0000 (01:33 -0500)
committerGreg Kroah-Hartman <[email protected]>
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 <[email protected]>
Acked-by: Kay Sievers <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
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;
 }