Update to 0.15.0 final

This commit is contained in:
Justin M. Forbes 2011-08-14 14:24:40 -05:00
parent b51ebd0cd2
commit fc5c27b497
31 changed files with 249 additions and 99 deletions

1
.gitignore vendored
View File

@ -8,3 +8,4 @@ qemu-kvm-0.13.0-25fdf4a.tar.gz
/qemu-kvm-0.15.0-fda1906.tar.gz
/qemu-kvm-0.15.0-59fadcc.tar.gz
/qemu-kvm-0.15.0-0af4922.tar.gz
/qemu-kvm-0.15.0.tar.gz

View File

@ -1,7 +1,7 @@
>From a0ca79b6cb44fea156174f937c7398befe884048 Mon Sep 17 00:00:00 2001
>From c0295cc7cc626a2d51de58ac0a9eeee94b6cc9d4 Mon Sep 17 00:00:00 2001
From: Amit Shah <amit.shah@redhat.com>
Date: Mon, 21 Mar 2011 21:57:47 +0100
Subject: [PATCH 01/25] char: Split out tcp socket close code in a separate
Subject: [PATCH 01/28] char: Split out tcp socket close code in a separate
function
Signed-off-by: Amit Shah <amit.shah@redhat.com>

View File

@ -1,7 +1,7 @@
>From 7cda5b9b8b24b778751a402f2b5e6b7d716f1800 Mon Sep 17 00:00:00 2001
>From 9e799828d3a805184687792254c379ba4887ec60 Mon Sep 17 00:00:00 2001
From: Amit Shah <amit.shah@redhat.com>
Date: Mon, 21 Mar 2011 20:31:45 +0100
Subject: [PATCH 02/25] char: Add a QemuChrHandlers struct to initialise
Subject: [PATCH 02/28] char: Add a QemuChrHandlers struct to initialise
chardev handlers
Instead of passing each handler in the qemu_add_handlers() function,

View File

@ -1,7 +1,7 @@
>From 28a0d9d78a886205765f513be2d522592b9ffd42 Mon Sep 17 00:00:00 2001
>From c8cf564bc5c080540287ecd5bd944d85873755df Mon Sep 17 00:00:00 2001
From: Amit Shah <amit.shah@redhat.com>
Date: Mon, 21 Mar 2011 20:32:58 +0100
Subject: [PATCH 03/25] iohandlers: Add enable/disable_write_fd_handler()
Subject: [PATCH 03/28] iohandlers: Add enable/disable_write_fd_handler()
functions
These will be used to provide a cleaner API for the nonblocking case.

View File

@ -1,7 +1,7 @@
>From 7058d42cf3e2fab291bd4c42604ef510a46bebe0 Mon Sep 17 00:00:00 2001
>From 3ad2ca8e46ba078e69254ca5886de89b30f823bb Mon Sep 17 00:00:00 2001
From: Amit Shah <amit.shah@redhat.com>
Date: Mon, 21 Mar 2011 21:41:42 +0100
Subject: [PATCH 04/25] char: Add framework for a 'write unblocked' callback
Subject: [PATCH 04/28] char: Add framework for a 'write unblocked' callback
The char layer can let users know that the driver will block on further
input. For users interested in not blocking, they can assign a function

View File

@ -1,7 +1,7 @@
>From 92303bbcdb1a2877bce80e25836d47056060403d Mon Sep 17 00:00:00 2001
>From a962453ed73a671f566cc94858dc21ab694cc85f Mon Sep 17 00:00:00 2001
From: Amit Shah <amit.shah@redhat.com>
Date: Mon, 21 Mar 2011 22:00:27 +0100
Subject: [PATCH 05/25] char: Update send_all() to handle nonblocking chardev
Subject: [PATCH 05/28] char: Update send_all() to handle nonblocking chardev
write requests
The send_all function is modified to return to the caller in case the

View File

@ -1,7 +1,7 @@
>From 569b1773afa2b30ec9c64cc71815d6c499cd02c0 Mon Sep 17 00:00:00 2001
>From 5fc1c0fc4c8153ea927aa8580c78c484f966be64 Mon Sep 17 00:00:00 2001
From: Amit Shah <amit.shah@redhat.com>
Date: Mon, 21 Mar 2011 22:02:47 +0100
Subject: [PATCH 06/25] char: Equip the unix/tcp backend to handle nonblocking
Subject: [PATCH 06/28] char: Equip the unix/tcp backend to handle nonblocking
writes#
Now that the infrastructure is in place to return -EAGAIN to callers,

View File

@ -1,7 +1,7 @@
>From edcb78965b9cab18004c30721d46138000a2c810 Mon Sep 17 00:00:00 2001
>From 5121e48706408e28c811e74d3e6da5b78aa9137d Mon Sep 17 00:00:00 2001
From: Amit Shah <amit.shah@redhat.com>
Date: Mon, 21 Mar 2011 22:05:10 +0100
Subject: [PATCH 07/25] char: Throttle when host connection is down#
Subject: [PATCH 07/28] char: Throttle when host connection is down#
When the host-side connection goes down, throttle the virtio-serial bus
and later unthrottle when a connection gets established. This helps

View File

@ -1,7 +1,7 @@
>From 06a1e88d3e4dc55e94da35928686571b56b8f7a4 Mon Sep 17 00:00:00 2001
>From 8750ea70a68e74ca3ecea6149d1d5289cc77dae3 Mon Sep 17 00:00:00 2001
From: Amit Shah <amit.shah@redhat.com>
Date: Mon, 21 Mar 2011 22:06:41 +0100
Subject: [PATCH 08/25] virtio-console: Enable port throttling when chardev is
Subject: [PATCH 08/28] virtio-console: Enable port throttling when chardev is
slow to consume data
When a chardev indicates it can't accept more data, we tell the

View File

@ -1,7 +1,7 @@
>From faa8f1ed4cb40ce4699882a88650a42ca70f0b6b Mon Sep 17 00:00:00 2001
>From a649fba41737329ae13a5b0b4f20798ddf97e2a2 Mon Sep 17 00:00:00 2001
From: Alon Levy <alevy@redhat.com>
Date: Tue, 22 Mar 2011 12:27:59 +0200
Subject: [PATCH 09/25] spice-qemu-char.c: add throttling
Subject: [PATCH 09/28] spice-qemu-char.c: add throttling
BZ: 672191

View File

@ -1,7 +1,7 @@
>From b8af15fd71aa0d0eb0f7df053759eaa85176af46 Mon Sep 17 00:00:00 2001
>From 63350d37305a8fc5b6a8fb2fbacfb8a6a91956fd Mon Sep 17 00:00:00 2001
From: Alon Levy <alevy@redhat.com>
Date: Tue, 22 Mar 2011 12:28:00 +0200
Subject: [PATCH 10/25] spice-qemu-char.c: remove intermediate buffer
Subject: [PATCH 10/28] spice-qemu-char.c: remove intermediate buffer
BZ: 672191
upstream: not submitted (explained below)

View File

@ -1,7 +1,7 @@
>From 267e2a453cab2966edd3cbef520351dd4880765c Mon Sep 17 00:00:00 2001
>From e7903f889f3105efe7e3876925926e8e91919b0f Mon Sep 17 00:00:00 2001
From: Hans de Goede <hdegoede@redhat.com>
Date: Tue, 19 Jul 2011 10:56:19 +0200
Subject: [PATCH 11/25] usb-redir: Add flow control support
Subject: [PATCH 11/28] usb-redir: Add flow control support
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
---

View File

@ -1,7 +1,7 @@
>From e52026748bb0b6e29f7703cc9fe8f8d6f5f345f8 Mon Sep 17 00:00:00 2001
>From 67d29af45ebb1539eaaa2bfb599350c790306111 Mon Sep 17 00:00:00 2001
From: Gerd Hoffmann <kraxel@redhat.com>
Date: Fri, 17 Jun 2011 10:34:25 +0200
Subject: [PATCH 14/25] spice: add worker wrapper functions.
Subject: [PATCH 12/28] spice: add worker wrapper functions.
Add wrapper functions for all spice worker calls.

View File

@ -1,7 +1,7 @@
>From 1de5cd33d8c1ffa35b5bcdf703d4b097284edda0 Mon Sep 17 00:00:00 2001
>From c28ee0e7c851fc58ac6ef8f5137fc35cc55b607c Mon Sep 17 00:00:00 2001
From: Gerd Hoffmann <kraxel@redhat.com>
Date: Fri, 17 Jun 2011 10:42:25 +0200
Subject: [PATCH 15/25] spice: add qemu_spice_display_init_common
Subject: [PATCH 13/28] spice: add qemu_spice_display_init_common
Factor out SimpleSpiceDisplay initialization into
qemu_spice_display_init_common() and call it from

View File

@ -1,7 +1,7 @@
>From b1fef6eecf09404114ca016aa090cffa183d40f1 Mon Sep 17 00:00:00 2001
>From 60257c766e7a39134a9db9f4d1111f2b9fea2f86 Mon Sep 17 00:00:00 2001
From: Gerd Hoffmann <kraxel@redhat.com>
Date: Wed, 29 Jun 2011 10:07:52 +0200
Subject: [PATCH 16/25] spice/qxl: move worker wrappers
Subject: [PATCH 14/28] spice/qxl: move worker wrappers
Move the wrapper functions which are used by qxl only to qxl.c.
Rename them from qemu_spice_* to qxl_spice_*. Also pass in a

View File

@ -1,7 +1,7 @@
>From fc1bf5a4be15e71f87fd73f79356a5a1df5aa724 Mon Sep 17 00:00:00 2001
>From b2b956cfda5fb144d9faa10b7c5894833feb7d30 Mon Sep 17 00:00:00 2001
From: Gerd Hoffmann <kraxel@redhat.com>
Date: Wed, 29 Jun 2011 10:24:05 +0200
Subject: [PATCH 17/25] qxl: fix surface tracking & locking
Subject: [PATCH 15/28] qxl: fix surface tracking & locking
Surface tracking needs proper locking since it is used from vcpu and spice
worker threads, add it. Also reset the surface counter when zapping all

View File

@ -1,7 +1,7 @@
>From cb29c060e51d2afcd9ba6ed6a115442473381d5a Mon Sep 17 00:00:00 2001
>From 31c995f6ee18ff2e2b45dbdcf1d57f777d1e0ef9 Mon Sep 17 00:00:00 2001
From: Alon Levy <alevy@redhat.com>
Date: Fri, 17 Jun 2011 14:42:09 +0200
Subject: [PATCH 18/25] qxl: add io_port_to_string
Subject: [PATCH 16/28] qxl: add io_port_to_string
Signed-off-by: Alon Levy <alevy@redhat.com>
---

View File

@ -1,7 +1,7 @@
>From 9e85acc84ed9dbaed1bb7abe83e1b2fe61905706 Mon Sep 17 00:00:00 2001
>From 4b61f7ca2ed63deb1d35c17150b53a1661f395f7 Mon Sep 17 00:00:00 2001
From: Gerd Hoffmann <kraxel@redhat.com>
Date: Thu, 30 Jun 2011 10:41:36 +0200
Subject: [PATCH 19/25] qxl: error handling fixes and cleanups.
Subject: [PATCH 17/28] qxl: error handling fixes and cleanups.
Add qxl_guest_bug() function which is supposed to be called in case
sanity checks of guest requests fail. It raises an error IRQ and

View File

@ -1,7 +1,7 @@
>From beffb6d82668c7f8bcead447422529532cc0b4e7 Mon Sep 17 00:00:00 2001
>From 5c0219c6cef769a5748705d489376ea618486a17 Mon Sep 17 00:00:00 2001
From: Alon Levy <alevy@redhat.com>
Date: Wed, 6 Jul 2011 13:40:29 +0200
Subject: [PATCH 20/25] qxl: make qxl_guest_bug take variable arguments
Subject: [PATCH 18/28] qxl: make qxl_guest_bug take variable arguments
Signed-off-by: Alon Levy <alevy@redhat.com>
---

View File

@ -1,7 +1,7 @@
>From 4eb9272a4185cf47a4a4e9cb59a95cfd9939e86c Mon Sep 17 00:00:00 2001
>From e8f481961a5fd3ad92a55dbabcccf09b037d86c9 Mon Sep 17 00:00:00 2001
From: Alon Levy <alevy@redhat.com>
Date: Wed, 29 Jun 2011 11:53:21 +0200
Subject: [PATCH 21/25] qxl: only disallow specific io's in vga mode
Subject: [PATCH 19/28] qxl: only disallow specific io's in vga mode
Since the driver is still in operation even after moving to UNDEFINED, i.e.
by destroying primary in any way.

View File

@ -1,7 +1,7 @@
>From b25a2a169340f70b29d47d0598df1ac525a87bf9 Mon Sep 17 00:00:00 2001
>From a1950cb3afb36a78df3ac9a545d99baf7cc93ca2 Mon Sep 17 00:00:00 2001
From: Alon Levy <alevy@redhat.com>
Date: Thu, 23 Jun 2011 20:02:18 +0200
Subject: [PATCH 22/25] qxl: async io support using new spice api
Subject: [PATCH 20/28] qxl: async io support using new spice api
Some of the QXL port i/o commands are waiting for the spice server to
complete certain actions. Add async versions for these commands, so we

View File

@ -1,7 +1,7 @@
>From b751be42f3da5666bd11d5a0acb20f225d9a4eb9 Mon Sep 17 00:00:00 2001
>From fed782e33714e6a44bca9a8c3ab8b017393e8089 Mon Sep 17 00:00:00 2001
From: Alon Levy <alevy@redhat.com>
Date: Sun, 5 Jun 2011 11:01:48 +0300
Subject: [PATCH 23/25] qxl: add QXL_IO_FLUSH_{SURFACES,RELEASE} for guest
Subject: [PATCH 21/28] qxl: add QXL_IO_FLUSH_{SURFACES,RELEASE} for guest
S3&S4 support
Add two new IOs.

View File

@ -1,7 +1,7 @@
>From 37779d77dff7cb73d333a6440cadd1db0638516b Mon Sep 17 00:00:00 2001
>From 81c99528614b45f2b8407418f7e2b5742559ac19 Mon Sep 17 00:00:00 2001
From: Gerd Hoffmann <kraxel@redhat.com>
Date: Wed, 29 Jun 2011 15:51:24 +0200
Subject: [PATCH 24/25] qxl: bump pci rev
Subject: [PATCH 22/28] qxl: bump pci rev
Inform guest drivers about the new features I/O commands we have
now (async commands, S3 support) if building with newer spice, i.e.

View File

@ -1,7 +1,7 @@
>From a1f7b1a638423f74a7a8e3e141f760777dcbd1ab Mon Sep 17 00:00:00 2001
>From ab57ac80b3e681a61ed34c84c36df673e6f9be33 Mon Sep 17 00:00:00 2001
From: Alon Levy <alevy@redhat.com>
Date: Thu, 28 Jul 2011 15:08:48 +0300
Subject: [PATCH 25/25] virtio-serial-bus: replay guest_open on migration
Subject: [PATCH 23/28] virtio-serial-bus: replay guest_open on migration
When migrating a host with with a spice agent running the mouse becomes
non operational after the migration. This is rhbz #725965.

View File

@ -0,0 +1,42 @@
>From c86147be45fe6cc38efa932f9587774d626a881b Mon Sep 17 00:00:00 2001
From: Hans de Goede <hdegoede@redhat.com>
Date: Thu, 11 Aug 2011 12:16:11 +0200
Subject: [PATCH 24/28] qemu-char: make qemu_chr_event public
Make qemu_chr_event public so that it can be used by chardev code
which lives outside of qemu-char.c
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
---
qemu-char.c | 2 +-
qemu-char.h | 1 +
2 files changed, 2 insertions(+), 1 deletions(-)
diff --git a/qemu-char.c b/qemu-char.c
index 8d39500..5d5a6d5 100644
--- a/qemu-char.c
+++ b/qemu-char.c
@@ -119,7 +119,7 @@ static void char_write_unblocked(void *opaque)
chr->chr_write_unblocked(chr->handler_opaque);
}
-static void qemu_chr_event(CharDriverState *s, int event)
+void qemu_chr_event(CharDriverState *s, int event)
{
/* Keep track if the char device is open */
switch (event) {
diff --git a/qemu-char.h b/qemu-char.h
index 68e7b5b..77ad62d 100644
--- a/qemu-char.h
+++ b/qemu-char.h
@@ -107,6 +107,7 @@ int qemu_chr_ioctl(CharDriverState *s, int cmd, void *arg);
void qemu_chr_generic_open(CharDriverState *s);
int qemu_chr_can_read(CharDriverState *s);
void qemu_chr_read(CharDriverState *s, uint8_t *buf, int len);
+void qemu_chr_event(CharDriverState *s, int event);
int qemu_chr_get_msgfd(CharDriverState *s);
void qemu_chr_accept_input(CharDriverState *s);
int qemu_chr_add_client(CharDriverState *s, int fd);
--
1.7.5.1

View File

@ -1,7 +1,7 @@
>From c79ffc7e3357317bd81f2abefa4743eaf8101a4e Mon Sep 17 00:00:00 2001
>From d98187ff877341b5db5ca7f9d50b238d5936052b Mon Sep 17 00:00:00 2001
From: Hans de Goede <hdegoede@redhat.com>
Date: Thu, 21 Jul 2011 15:36:40 +0200
Subject: [PATCH 13/25] spice-qemu-char: Generate chardev open/close events
Subject: [PATCH 25/28] spice-qemu-char: Generate chardev open/close events
Define a state callback and make that generate chardev open/close events when
called by the spice-server.
@ -13,21 +13,20 @@ http://lists.freedesktop.org/archives/spice-devel/2011-July/004837.html
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
---
spice-qemu-char.c | 46 +++++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 45 insertions(+), 1 deletions(-)
spice-qemu-char.c | 35 ++++++++++++++++++++++++++++++++++-
1 files changed, 34 insertions(+), 1 deletions(-)
diff --git a/spice-qemu-char.c b/spice-qemu-char.c
index 2b8aec4..1f4f1ec 100644
index 2b8aec4..d55e74a 100644
--- a/spice-qemu-char.c
+++ b/spice-qemu-char.c
@@ -89,11 +89,50 @@ static int vmc_read(SpiceCharDeviceInstance *sin, uint8_t *buf, int len)
@@ -89,11 +89,39 @@ static int vmc_read(SpiceCharDeviceInstance *sin, uint8_t *buf, int len)
return bytes;
}
+static void vmc_state(SpiceCharDeviceInstance *sin, int connected)
+{
+ SpiceCharDriver *scd = container_of(sin, SpiceCharDriver, sin);
+ int event;
+
+#if SPICE_SERVER_VERSION < 0x000901
+ /*
@ -49,17 +48,7 @@ index 2b8aec4..1f4f1ec 100644
+ return;
+ }
+
+ if (connected) {
+ scd->chr->opened = 1;
+ event = CHR_EVENT_OPENED;
+ } else {
+ scd->chr->opened = 0;
+ event = CHR_EVENT_CLOSED;
+ }
+
+ if (scd->chr->chr_event) {
+ scd->chr->chr_event(scd->chr->handler_opaque, event);
+ }
+ qemu_chr_event(scd->chr, connected ? CHR_EVENT_OPENED : CHR_EVENT_CLOSED);
+}
+
static SpiceCharDeviceInterface vmc_interface = {
@ -71,7 +60,7 @@ index 2b8aec4..1f4f1ec 100644
.write = vmc_write,
.read = vmc_read,
};
@@ -222,7 +261,12 @@ int qemu_chr_open_spice(QemuOpts *opts, CharDriverState **_chr)
@@ -222,7 +250,12 @@ int qemu_chr_open_spice(QemuOpts *opts, CharDriverState **_chr)
chr->chr_guest_close = spice_chr_guest_close;
s->unblock_timer = qemu_new_timer_ms(vm_clock, spice_chr_unblock, s);

View File

@ -1,7 +1,7 @@
>From eea72a6f70c7b4cf632c3637e12d4689ce6ff0f5 Mon Sep 17 00:00:00 2001
>From c8a865625b713ffc1cff6ff97fc3e4c01aeeb0f7 Mon Sep 17 00:00:00 2001
From: Hans de Goede <hdegoede@redhat.com>
Date: Thu, 21 Jul 2011 16:28:06 +0200
Subject: [PATCH 12/25] usb-redir: Call qemu_chr_guest_open/close
Subject: [PATCH 26/28] usb-redir: Call qemu_chr_guest_open/close
To let the chardev now we're ready start receiving data. This is necessary
with the spicevmc chardev to get it registered with the spice-server.
@ -12,18 +12,18 @@ Signed-off-by: Hans de Goede <hdegoede@redhat.com>
1 files changed, 3 insertions(+), 0 deletions(-)
diff --git a/usb-redir.c b/usb-redir.c
index 6932beb..d1aafda 100644
index 6932beb..9ce2c8b 100644
--- a/usb-redir.c
+++ b/usb-redir.c
@@ -840,6 +840,8 @@ static int usbredir_initfn(USBDevice *udev)
@@ -839,6 +839,8 @@ static int usbredir_initfn(USBDevice *udev)
/* We'll do the attach once we receive the speed from the usb-host */
udev->auto_attach = 0;
qemu_chr_add_handlers(dev->cs, &usbredir_chr_handlers, dev);
+ /* Let the other side know we are ready */
+ qemu_chr_guest_open(dev->cs);
qemu_chr_add_handlers(dev->cs, &usbredir_chr_handlers, dev);
return 0;
}
@@ -861,6 +863,7 @@ static void usbredir_handle_destroy(USBDevice *udev)
{
USBRedirDevice *dev = DO_UPCAST(USBRedirDevice, dev, udev);

View File

@ -0,0 +1,88 @@
>From a6fba82709859fc91e676ce53079eb250bb55750 Mon Sep 17 00:00:00 2001
From: Hans de Goede <hdegoede@redhat.com>
Date: Thu, 4 Aug 2011 14:41:07 +0200
Subject: [PATCH 27/28] usb-redir: Device disconnect + re-connect robustness
fixes
These fixes mainly target the other side sending some (error status)
packets after a disconnect packet. In some cases these would get queued
up and then reported to the controller when a new device gets connected.
* Fully reset device state on disconnect
* Don't allow a connect message when already connected
* Ignore iso and interrupt status messages when disconnected
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
---
usb-redir.c | 22 +++++++++++++++++++++-
1 files changed, 21 insertions(+), 1 deletions(-)
diff --git a/usb-redir.c b/usb-redir.c
index 9ce2c8b..6d8f986 100644
--- a/usb-redir.c
+++ b/usb-redir.c
@@ -905,6 +905,11 @@ static void usbredir_device_connect(void *priv,
{
USBRedirDevice *dev = priv;
+ if (qemu_timer_pending(dev->attach_timer) || dev->dev.attached) {
+ ERROR("Received device connect while already connected\n");
+ return;
+ }
+
switch (device_connect->speed) {
case usb_redir_speed_low:
DPRINTF("attaching low speed device\n");
@@ -933,19 +938,26 @@ static void usbredir_device_connect(void *priv,
static void usbredir_device_disconnect(void *priv)
{
USBRedirDevice *dev = priv;
+ int i;
/* Stop any pending attaches */
qemu_del_timer(dev->attach_timer);
if (dev->dev.attached) {
usb_device_detach(&dev->dev);
- usbredir_cleanup_device_queues(dev);
/*
* Delay next usb device attach to give the guest a chance to see
* see the detach / attach in case of quick close / open succession
*/
dev->next_attach_time = qemu_get_clock_ms(vm_clock) + 200;
}
+
+ /* Reset state so that the next dev connected starts with a clean slate */
+ usbredir_cleanup_device_queues(dev);
+ memset(dev->endpoint, 0, sizeof(dev->endpoint));
+ for (i = 0; i < MAX_ENDPOINTS; i++) {
+ QTAILQ_INIT(&dev->endpoint[i].bufpq);
+ }
}
static void usbredir_interface_info(void *priv,
@@ -1037,6 +1049,10 @@ static void usbredir_iso_stream_status(void *priv, uint32_t id,
DPRINTF("iso status %d ep %02X id %u\n", iso_stream_status->status,
ep, id);
+ if (!dev->dev.attached) {
+ return;
+ }
+
dev->endpoint[EP2I(ep)].iso_error = iso_stream_status->status;
if (iso_stream_status->status == usb_redir_stall) {
DPRINTF("iso stream stopped by peer ep %02X\n", ep);
@@ -1054,6 +1070,10 @@ static void usbredir_interrupt_receiving_status(void *priv, uint32_t id,
DPRINTF("interrupt recv status %d ep %02X id %u\n",
interrupt_receiving_status->status, ep, id);
+ if (!dev->dev.attached) {
+ return;
+ }
+
dev->endpoint[EP2I(ep)].interrupt_error =
interrupt_receiving_status->status;
if (interrupt_receiving_status->status == usb_redir_stall) {
--
1.7.5.1

View File

@ -0,0 +1,32 @@
>From 7e49ff036892fade86c7734118ee0c6da5cbad09 Mon Sep 17 00:00:00 2001
From: Hans de Goede <hdegoede@redhat.com>
Date: Thu, 11 Aug 2011 12:11:16 +0200
Subject: [PATCH 28/28] usb-redir: Don't try to write to the chardev after a
close event
Sicne we handle close async in a bh, do_write and thus write can get
called after receiving a close event. This patch adds a check to
the usb-redir write callback to not do a qemu_chr_write on a closed
chardev.
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
---
usb-redir.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/usb-redir.c b/usb-redir.c
index 6d8f986..732ddab 100644
--- a/usb-redir.c
+++ b/usb-redir.c
@@ -226,7 +226,7 @@ static int usbredir_write(void *priv, uint8_t *data, int count)
USBRedirDevice *dev = priv;
int r;
- if (dev->cs->write_blocked) {
+ if (!dev->cs->opened || dev->cs->write_blocked) {
return 0;
}
--
1.7.5.1

View File

@ -1,9 +1,7 @@
%define githead 0af4922
Summary: QEMU is a FAST! processor emulator
Name: qemu
Version: 0.15.0
Release: 0.3.20110804%githead%{?dist}
Release: 1%{?dist}
# Epoch because we pushed a qemu-1.0 package
Epoch: 2
License: GPLv2+ and LGPLv2+ and BSD
@ -19,11 +17,7 @@ URL: http://www.qemu.org/
%define _smp_mflags %{nil}
%endif
# Source0: http://downloads.sourceforge.net/sourceforge/kvm/qemu-kvm-%{version}.tar.gz
# The source for this package was pulled from upstream's git. Use the
# following commands to generate the tarball:
# git archive --format=tar --prefix=qemu-kvm-0.15.0/ 0af4922 | gzip > qemu-kvm-0.15.0-0af4922.tar.gz
Source0: qemu-kvm-%{version}-%{githead}.tar.gz
Source0: http://downloads.sourceforge.net/sourceforge/kvm/qemu-kvm-%{version}.tar.gz
Source1: qemu.init
@ -52,23 +46,23 @@ Patch08: 0008-virtio-console-Enable-port-throttling-when-chardev-i.patch
Patch09: 0009-spice-qemu-char.c-add-throttling.patch
Patch10: 0010-spice-qemu-char.c-remove-intermediate-buffer.patch
Patch11: 0011-usb-redir-Add-flow-control-support.patch
Patch12: 0012-usb-redir-Call-qemu_chr_guest_open-close.patch
Patch13: 0013-spice-qemu-char-Generate-chardev-open-close-events.patch
Patch14: 0014-spice-add-worker-wrapper-functions.patch
Patch15: 0015-spice-add-qemu_spice_display_init_common.patch
Patch16: 0016-spice-qxl-move-worker-wrappers.patch
Patch17: 0017-qxl-fix-surface-tracking-locking.patch
Patch18: 0018-qxl-add-io_port_to_string.patch
Patch19: 0019-qxl-error-handling-fixes-and-cleanups.patch
Patch20: 0020-qxl-make-qxl_guest_bug-take-variable-arguments.patch
Patch21: 0021-qxl-only-disallow-specific-io-s-in-vga-mode.patch
Patch22: 0022-qxl-async-io-support-using-new-spice-api.patch
Patch23: 0023-qxl-add-QXL_IO_FLUSH_-SURFACES-RELEASE-for-guest-S3-.patch
Patch24: 0024-qxl-bump-pci-rev.patch
Patch25: 0025-virtio-serial-bus-replay-guest_open-on-migration.patch
# Fix for default accelerator in non-KVM builds
Patch100: qemu-kvm-default-accelerator.patch
Patch12: 0012-spice-add-worker-wrapper-functions.patch
Patch13: 0013-spice-add-qemu_spice_display_init_common.patch
Patch14: 0014-spice-qxl-move-worker-wrappers.patch
Patch15: 0015-qxl-fix-surface-tracking-locking.patch
Patch16: 0016-qxl-add-io_port_to_string.patch
Patch17: 0017-qxl-error-handling-fixes-and-cleanups.patch
Patch18: 0018-qxl-make-qxl_guest_bug-take-variable-arguments.patch
Patch19: 0019-qxl-only-disallow-specific-io-s-in-vga-mode.patch
Patch20: 0020-qxl-async-io-support-using-new-spice-api.patch
Patch21: 0021-qxl-add-QXL_IO_FLUSH_-SURFACES-RELEASE-for-guest-S3-.patch
Patch22: 0022-qxl-bump-pci-rev.patch
Patch23: 0023-virtio-serial-bus-replay-guest_open-on-migration.patch
Patch24: 0024-qemu-char-make-qemu_chr_event-public.patch
Patch25: 0025-spice-qemu-char-Generate-chardev-open-close-events.patch
Patch26: 0026-usb-redir-Call-qemu_chr_guest_open-close.patch
Patch27: 0027-usb-redir-Device-disconnect-re-connect-robustness-fi.patch
Patch28: 0028-usb-redir-Don-t-try-to-write-to-the-chardev-after-a-.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildRequires: SDL-devel zlib-devel which texi2html gnutls-devel cyrus-sasl-devel
@ -267,8 +261,9 @@ such as kvm_stat.
%patch23 -p1
%patch24 -p1
%patch25 -p1
%patch100 -p1
%patch26 -p1
%patch27 -p1
%patch28 -p1
%build
# By default we build everything, but allow x86 to build a minimal version
@ -579,6 +574,9 @@ fi
%{_mandir}/man1/qemu-img.1*
%changelog
* Sun Aug 14 2011 Justin M. Forbes <jforbes@redhat.com> - 2:0.15.0-1
- Update to 0.15.0 stable release.
* Thu Aug 04 2011 Justin M. Forbes <jforbes@redhat.com> - 2:0.15.0-0.3.201108040af4922
- Update to 0.15.0-rc1 as we prepare for 0.15.0 release

View File

@ -1 +1 @@
a6d16b7d6acfa94300586eda5e7c19a3 qemu-kvm-0.15.0-0af4922.tar.gz
b45b0deebba4ce47dcaaab3807f6ed47 qemu-kvm-0.15.0.tar.gz