On Mon, Feb 4, 2013 at 12:50 PM, Amit Shah <amit.s...@redhat.com> wrote: > The virtio-serial-bus already has the logic to make flow control work > properly. Hook into the char layer's new ability to signal a backend is > writable again. > > Signed-off-by: Amit Shah <amit.s...@redhat.com> > --- > hw/virtio-console.c | 13 +++++++++++++ > 1 file changed, 13 insertions(+) > > diff --git a/hw/virtio-console.c b/hw/virtio-console.c > index 46072a0..0cf6072 100644 > --- a/hw/virtio-console.c > +++ b/hw/virtio-console.c > @@ -20,6 +20,18 @@ typedef struct VirtConsole { > CharDriverState *chr; > } VirtConsole; > > +/* > + * Callback function that's called from chardevs when backend becomes > + * writable. > + */ > +static gboolean chr_write_unblocked(GIOChannel *chan, GIOCondition cond, > + void *opaque) > +{ > + VirtConsole *vcon = opaque; > + > + virtio_serial_throttle_port(&vcon->port, false); > + return false;
FALSE since this is gboolean. > +} > > /* Callback function that's called when the guest sends us data */ > static ssize_t flush_buf(VirtIOSerialPort *port, const uint8_t *buf, size_t > len) > @@ -48,6 +60,7 @@ static ssize_t flush_buf(VirtIOSerialPort *port, const > uint8_t *buf, size_t len) > * do_flush_queued_data(). > */ > ret = 0; > + qemu_chr_fe_add_watch(vcon->chr, G_IO_OUT, chr_write_unblocked, > vcon); > } > return ret; > } > -- > 1.8.1 > >