]> asedeno.scripts.mit.edu Git - linux.git/commit
vcs: restore and document initial POLLPRI event
authorNicolas Pitre <nicolas.pitre@linaro.org>
Thu, 10 Jan 2019 00:17:20 +0000 (19:17 -0500)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 18 Jan 2019 12:48:52 +0000 (13:48 +0100)
commit95252f9c04f7158e0ba44ce8efe208760874dfd9
treed3211c5d518c11bdf219f1cc383298d4007fbb84
parentfad08b205cf134759c28d182905bf27762017192
vcs: restore and document initial POLLPRI event

Restore and document the forced initial POLLPRI event reporting when
poll() is used for the first time. This used to be the implemented
behavior before recent changes. Because of the way poll() is implemented,
this prevents losing an event happening between the last read() and the
first poll() invocation.

Since poll() for /dev/vcs* was not always supported, user space probes
for its availability as follows:

int fd = open("/dev/vcsa", O_RDONLY);
struct pollfd p = { .fd = fd, .events = POLLPRI };
available = (poll(&p, 1, 0) == 1);

Semantically, it makes sense to signal the first event as such even if
it might be spurious. The screen could be modified, and modified back
to its initial state before we get to read it, so users must be prepared
for that anyway.

Signed-off-by: Nicolas Pitre <nico@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/tty/vt/vc_screen.c