diff options
author | Peter Maydell | 2015-01-16 11:16:14 +0100 |
---|---|---|
committer | Peter Maydell | 2015-01-16 11:16:14 +0100 |
commit | e68cba36360a2ab5bf0576b66df4d0eb0d822f8d (patch) | |
tree | 933ecff5cc8e380fe38693dc0cca2d7b8e479dfc /migration/qemu-file-buf.c | |
parent | Merge remote-tracking branch 'remotes/mjt/tags/pull-trivial-patches-2015-01-1... (diff) | |
parent | vmstate: type-check sub-arrays (diff) | |
download | qemu-e68cba36360a2ab5bf0576b66df4d0eb0d822f8d.tar.gz qemu-e68cba36360a2ab5bf0576b66df4d0eb0d822f8d.tar.xz qemu-e68cba36360a2ab5bf0576b66df4d0eb0d822f8d.zip |
Merge remote-tracking branch 'remotes/amit-migration/tags/mig-2.3-1' into staging
A set of patches collected over the holidays. Mix of optimizations and
fixes.
# gpg: Signature made Fri 16 Jan 2015 07:42:00 GMT using RSA key ID 854083B6
# gpg: Good signature from "Amit Shah <amit@amitshah.net>"
# gpg: aka "Amit Shah <amit@kernel.org>"
# gpg: aka "Amit Shah <amitshah@gmx.net>"
* remotes/amit-migration/tags/mig-2.3-1:
vmstate: type-check sub-arrays
migration_cancel: shutdown migration socket
Handle bi-directional communication for fd migration
socket shutdown
Tests: QEMUSizedBuffer/QEMUBuffer
QEMUSizedBuffer: only free qsb that qemu_bufopen allocated
xbzrle: rebuild the cache_is_cached function
xbzrle: optimize XBZRLE to decrease the cache misses
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Diffstat (limited to 'migration/qemu-file-buf.c')
-rw-r--r-- | migration/qemu-file-buf.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/migration/qemu-file-buf.c b/migration/qemu-file-buf.c index d33dd44747..e97e0bd655 100644 --- a/migration/qemu-file-buf.c +++ b/migration/qemu-file-buf.c @@ -395,6 +395,7 @@ QEMUSizedBuffer *qsb_clone(const QEMUSizedBuffer *qsb) typedef struct QEMUBuffer { QEMUSizedBuffer *qsb; QEMUFile *file; + bool qsb_allocated; } QEMUBuffer; static int buf_get_buffer(void *opaque, uint8_t *buf, int64_t pos, int size) @@ -424,7 +425,9 @@ static int buf_close(void *opaque) { QEMUBuffer *s = opaque; - qsb_free(s->qsb); + if (s->qsb_allocated) { + qsb_free(s->qsb); + } g_free(s); @@ -463,12 +466,11 @@ QEMUFile *qemu_bufopen(const char *mode, QEMUSizedBuffer *input) } s = g_malloc0(sizeof(QEMUBuffer)); - if (mode[0] == 'r') { - s->qsb = input; - } + s->qsb = input; if (s->qsb == NULL) { s->qsb = qsb_create(NULL, 0); + s->qsb_allocated = true; } if (!s->qsb) { g_free(s); |