[PATCH] fix select() with an xoffed tty
From: Manfred Spraul <manfred@colorfullife.com> Eli Barzilay noticed that select() for tty devices is broken: For stopped tty devices, select says POLLOUT and write fails with -EAGAIN. http://marc.theaimsgroup.com/?l=linux-kernel&m=105902461110282&w=2 I've tracked this back to normal_poll in drivers/char/n_tty.c: > if (tty->driver->chars_in_buffer(tty) < WAKEUP_CHARS) > mask |= POLLOUT | POLLWRNORM; It assumes that a following write will succeed if less than 256 bytes are in the write buffer right now. This assumption is wrong for con_write_room: if the console is stopped, it returns 0 bytes buffer size (con_write_room()). Ditto for pty_write_room.
Showing
Please register or sign in to comment