All of lore.kernel.org
 help / color / mirror / Atom feed
From: Amit Shah <amit.shah@redhat.com>
To: Hans de Goede <hdegoede@redhat.com>
Cc: "Marc-André Lureau" <mlureau@redhat.com>,
	qemu-devel@nongnu.org, "Gerd Hoffmann" <kraxel@redhat.com>
Subject: Re: [Qemu-devel] [PATCH 2/7] virtio-console: Remove any pending watches on close
Date: Thu, 14 Mar 2013 13:05:50 +0530	[thread overview]
Message-ID: <20130314073550.GA10264@amit.redhat.com> (raw)
In-Reply-To: <1363183187-16258-3-git-send-email-hdegoede@redhat.com>

On (Wed) 13 Mar 2013 [14:59:42], Hans de Goede wrote:
> Signed-off-by: Hans de Goede <hdegoede@redhat.com>
> ---
>  hw/virtio-console.c | 16 ++++++++++++++--
>  1 file changed, 14 insertions(+), 2 deletions(-)
> 
> diff --git a/hw/virtio-console.c b/hw/virtio-console.c
> index 1d87c5b..ec0f91b 100644
> --- a/hw/virtio-console.c
> +++ b/hw/virtio-console.c
> @@ -18,6 +18,7 @@
>  typedef struct VirtConsole {
>      VirtIOSerialPort port;
>      CharDriverState *chr;
> +    guint watch;
>  } VirtConsole;
>  
>  /*
> @@ -29,6 +30,7 @@ static gboolean chr_write_unblocked(GIOChannel *chan, GIOCondition cond,
>  {
>      VirtConsole *vcon = opaque;
>  
> +    vcon->watch = 0;
>      virtio_serial_throttle_port(&vcon->port, false);
>      return FALSE;
>  }
> @@ -60,8 +62,10 @@ static ssize_t flush_buf(VirtIOSerialPort *port, const uint8_t *buf, size_t len)
>              ret = 0;
>          if (!k->is_console) {
>              virtio_serial_throttle_port(port, true);
> -            qemu_chr_fe_add_watch(vcon->chr, G_IO_OUT, chr_write_unblocked,
> -                                  vcon);
> +            if (!vcon->watch) {
> +                vcon->watch = qemu_chr_fe_add_watch(vcon->chr, G_IO_OUT,
> +                                                    chr_write_unblocked, vcon);
> +            }
>          }
>      }
>      return ret;
> @@ -86,6 +90,10 @@ static void guest_close(VirtIOSerialPort *port)
>      if (!vcon->chr) {
>          return;
>      }
> +    if (vcon->watch) {
> +        g_source_remove(vcon->watch);
> +        vcon->watch = 0;
> +    }
>      qemu_chr_fe_close(vcon->chr);
>  }

Even if a guest closed the connection, we want the data the guest sent
before the close to go out.

What's the reason to not do that?

> @@ -116,6 +124,10 @@ static void chr_event(void *opaque, int event)
>          virtio_serial_open(&vcon->port);
>          break;
>      case CHR_EVENT_CLOSED:
> +        if (vcon->watch) {
> +            g_source_remove(vcon->watch);
> +            vcon->watch = 0;
> +        }
>          virtio_serial_close(&vcon->port);
>          break;
>      }

Agreed with the rest.


		Amit

  reply	other threads:[~2013-03-14  7:36 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-03-13 13:59 [Qemu-devel] [PATCH 0/7] Spice / usb-redir chardev flowcontrol patches Hans de Goede
2013-03-13 13:59 ` [Qemu-devel] [PATCH 1/7] virtio-console: Also throttle when less was written then requested Hans de Goede
2013-03-13 13:59 ` [Qemu-devel] [PATCH 2/7] virtio-console: Remove any pending watches on close Hans de Goede
2013-03-14  7:35   ` Amit Shah [this message]
2013-03-14 13:32     ` Hans de Goede
2013-03-13 13:59 ` [Qemu-devel] [PATCH 3/7] spice-qemu-char: Fix name parameter issues after qapi-ifying Hans de Goede
2013-03-13 13:59 ` [Qemu-devel] [PATCH 4/7] spice-qemu-char: Remove dead debugging code Hans de Goede
2013-03-13 13:59 ` [Qemu-devel] [PATCH 5/7] spice-qemu-char: Add watch support Hans de Goede
2013-03-13 13:59 ` [Qemu-devel] [PATCH 6/7] spice-qemu-char.c: Remove intermediate buffer Hans de Goede
2013-03-13 13:59 ` [Qemu-devel] [PATCH 7/7] usb-redir: Add flow control support Hans de Goede
  -- strict thread matches above, loose matches on Subject: below --
2013-03-28 13:28 [Qemu-devel] [PATCH 0/7] Spice / usb-redir chardev flowcontrol patches v3 Hans de Goede
2013-03-28 13:28 ` [Qemu-devel] [PATCH 2/7] virtio-console: Remove any pending watches on close Hans de Goede
2013-04-05  9:30 [Qemu-devel] [PATCH 0/7] usb-redir chardev flowcontrol patches v4 Hans de Goede
2013-04-05  9:30 ` [Qemu-devel] [PATCH 2/7] virtio-console: Remove any pending watches on close Hans de Goede

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20130314073550.GA10264@amit.redhat.com \
    --to=amit.shah@redhat.com \
    --cc=hdegoede@redhat.com \
    --cc=kraxel@redhat.com \
    --cc=mlureau@redhat.com \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.