Prevent an O_NDELAY writer from blocking when a tty write is blocked by the tty atomic writer mutex
Without this a tty write could block if a previous blocking tty write was in progress on the same tty and blocked by a line discipline or hardware event. Originally found and reported by Dave Johnson. Signed-off-by: Alan Cox <alan@redhat.com> Acked-by: Dave Johnson <djohnson+linux-kernel@sw.starentnetworks.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
@@ -338,6 +338,12 @@ extern struct tty_struct *get_current_tty(void);
|
||||
|
||||
extern struct mutex tty_mutex;
|
||||
|
||||
extern void tty_write_unlock(struct tty_struct *tty);
|
||||
extern int tty_write_lock(struct tty_struct *tty, int ndelay);
|
||||
#define tty_is_writelocked(tty) (mutex_is_locked(&tty->atomic_write_lock))
|
||||
|
||||
|
||||
|
||||
/* n_tty.c */
|
||||
extern struct tty_ldisc tty_ldisc_N_TTY;
|
||||
|
||||
|
Reference in New Issue
Block a user