qemu-char: Keep pty slave file descriptor open until the master is closed
commit34689e206abddac87a5217d458534e24f2a05562
authorPaolo Bonzini <pbonzini@redhat.com>
Tue, 19 Jan 2016 13:13:29 +0000 (19 14:13 +0100)
committerPaolo Bonzini <pbonzini@redhat.com>
Tue, 9 Feb 2016 14:45:26 +0000 (9 15:45 +0100)
tree737d508f9eda56012b9d224775ae93ca320fd613
parent5b82b703b69acc67b78b98a5efc897a3912719eb
qemu-char: Keep pty slave file descriptor open until the master is closed

If a process opens the slave pts device, writes data to it, then
immediately closes it, the data doesn't reliably get delivered to the
emulated serial port. This seems to be because a read of the master
pty device returns EIO on Linux if no process has the pts device open,
even when data is waiting "in the pipe".

A fix seems to be for QEMU to keep the pts file descriptor open until
the pty is closed, as per the below patch.

Signed-off-by: Ashley Jonathan <jonathan.ashley@altran.com>
Message-Id: <AC19797808C8D548ABDE0CA4A97AA30A30DEB409@XMB-DCFR-37.europe.corp.altran.com>
Reviewed-by: Michael Tokarev <mjt@tls.msk.ru>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
qemu-char.c