qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Gerd Hoffmann <kraxel@redhat.com>
To: qemu-devel@nongnu.org
Cc: Hans de Goede <hdegoede@redhat.com>, Alon Levy <alevy@redhat.com>,
	Gerd Hoffmann <kraxel@redhat.com>
Subject: [Qemu-devel] [PATCH 8/9] spice-qemu-char: Remove intermediate buffer
Date: Tue, 16 Apr 2013 11:56:33 +0200	[thread overview]
Message-ID: <1366106194-28826-9-git-send-email-kraxel@redhat.com> (raw)
In-Reply-To: <1366106194-28826-1-git-send-email-kraxel@redhat.com>

From: Alon Levy <alevy@redhat.com>

virtio-serial's buffer is valid when it calls us, and we don't
access it otherwise: vmc_read is only called in response to wakeup,
or else we set datalen=0 and throttle. Then vmc_read is called back,
we return 0 (not accessing the buffer) and set the timer to unthrottle.

Also make datalen int and not ssize_t (to fit spice_chr_write signature).

HdG: Update to apply to spice-qemu-char with new gio-channel based
flowcontrol support.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
---
 spice-qemu-char.c |   12 +++---------
 1 file changed, 3 insertions(+), 9 deletions(-)

diff --git a/spice-qemu-char.c b/spice-qemu-char.c
index 7e551bf..ff95fcb 100644
--- a/spice-qemu-char.c
+++ b/spice-qemu-char.c
@@ -14,9 +14,8 @@ typedef struct SpiceCharDriver {
     char                  *subtype;
     bool                  active;
     bool                  blocked;
-    uint8_t               *buffer;
-    uint8_t               *datapos;
-    ssize_t               bufsize, datalen;
+    const uint8_t         *datapos;
+    int                   datalen;
     QLIST_ENTRY(SpiceCharDriver) next;
 } SpiceCharDriver;
 
@@ -186,12 +185,7 @@ static int spice_chr_write(CharDriverState *chr, const uint8_t *buf, int len)
     int read_bytes;
 
     assert(s->datalen == 0);
-    if (s->bufsize < len) {
-        s->bufsize = len;
-        s->buffer = g_realloc(s->buffer, s->bufsize);
-    }
-    memcpy(s->buffer, buf, len);
-    s->datapos = s->buffer;
+    s->datapos = buf;
     s->datalen = len;
     spice_server_char_device_wakeup(&s->sin);
     read_bytes = len - s->datalen;
-- 
1.7.9.7

  parent reply	other threads:[~2013-04-16  9:56 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-04-16  9:56 [Qemu-devel] [PULL 0/9] spice patch queue Gerd Hoffmann
2013-04-16  9:56 ` [Qemu-devel] [PATCH 1/9] qxl: add 4k + 8k resolutions Gerd Hoffmann
2013-04-16  9:56 ` [Qemu-devel] [PATCH 2/9] qxl: add 2000x2000 and 2048x2048 video modes Gerd Hoffmann
2013-04-16  9:56 ` [Qemu-devel] [PATCH 3/9] spice: (32 bit only) fix surface cmd tracking destruction Gerd Hoffmann
2013-04-16  9:56 ` [Qemu-devel] [PATCH 4/9] virtio-console: Also throttle when less was written then requested Gerd Hoffmann
2013-04-16  9:56 ` [Qemu-devel] [PATCH 5/9] virtio-console: Remove any pending watches on close Gerd Hoffmann
2013-04-16  9:56 ` [Qemu-devel] [PATCH 6/9] spice-qemu-char: Remove #ifdef-ed code for old spice-server compat Gerd Hoffmann
2013-04-16  9:56 ` [Qemu-devel] [PATCH 7/9] spice-qemu-char: Add watch support Gerd Hoffmann
2013-04-16  9:56 ` Gerd Hoffmann [this message]
2013-04-16  9:56 ` [Qemu-devel] [PATCH 9/9] spice-qemu-char: vmc_write: Don't write more bytes then we're asked too Gerd Hoffmann

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=1366106194-28826-9-git-send-email-kraxel@redhat.com \
    --to=kraxel@redhat.com \
    --cc=alevy@redhat.com \
    --cc=hdegoede@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).