[qemu] Update to 0.15.0-rc0

Justin M. Forbes jforbes at fedoraproject.org
Thu Jul 28 17:10:28 UTC 2011


commit 5e10b14df07276d4ec6b5903367ac1302c6bbf61
Author: Justin M. Forbes <jforbes at redhat.com>
Date:   Thu Jul 28 12:10:09 2011 -0500

    Update to 0.15.0-rc0

 .gitignore                                         |    2 +
 ...out-tcp-socket-close-code-in-a-separate-f.patch |   10 +-
 ...b-musb.c-Don-t-misuse-usb_packet_complete.patch |   32 -
 ...QemuChrHandlers-struct-to-initialise-char.patch |   56 +-
 0002-usb-Add-a-usb_fill_port-helper-function.patch |   42 -
 ...Add-enable-disable_write_fd_handler-funct.patch |    8 +-
 ...itial-call-of-usb_port_location-to-usb_fi.patch |   83 --
 ...-framework-for-a-write-unblocked-callback.patch |   14 +-
 0004-usb-Add-a-register_companion-USB-bus-op.patch |   82 --
 ...-send_all-to-handle-nonblocking-chardev-w.patch |   22 +-
 ...rt-wakeup-and-complete-ops-take-a-USBPort.patch |  213 ---
 ...the-unix-tcp-backend-to-handle-nonblockin.patch |   14 +-
 ...-device_destroy-bus-op-with-a-child_detac.patch |  358 ------
 ...har-Throttle-when-host-connection-is-down.patch |    8 +-
 ...b-ehci-drop-unused-num-ports-state-member.patch |   26 -
 ...nnect-Status-bit-is-read-only-don-t-allow.patch |   32 -
 ...ole-Enable-port-throttling-when-chardev-i.patch |   10 +-
 ... => 0009-spice-qemu-char.c-add-throttling.patch |    8 +-
 0009-usb-ehci-cleanup-port-reset-handling.patch    |   38 -
 ...ce-qemu-char.c-remove-intermediate-buffer.patch |    6 +-
 ...on-calling-usb_attach-port-NULL-on-a-port.patch |   44 -
 ...x-handling-of-PED-and-PEDC-port-status-bi.patch |   80 --
 ...> 0011-usb-redir-Add-flow-control-support.patch |    4 +-
 ...d-support-for-registering-companion-contr.patch |  321 -----
 ...-usb-redir-Call-qemu_chr_guest_open-close.patch |   37 +
 ...u-char-Generate-chardev-open-close-events.patch |   90 ++
 ...d-support-for-being-a-companion-controlle.patch |  103 --
 ...d-support-for-being-a-companion-controlle.patch |  127 --
 0015-pci-add-ich9-usb-controller-ids.patch         |   31 -
 0016-uhci-add-ich9-controllers.patch               |  102 --
 0017-ehci-fix-port-count.patch                     |   28 -
 0018-ehci-add-ich9-controller.patch                |   74 --
 0019-usb-update-documentation.patch                |  112 --
 ...r_port-do-not-set-port-opaque-and-port-in.patch |   28 -
 0021-usb-fixup-bluetooth-descriptors.patch         |  116 --
 0022-usb-hub-remove-unused-descriptor-arrays.patch |   95 --
 0023-usb-ohci-raise-interrupt-on-attach.patch      |   50 -
 0024-USB-add-usb-network-redirection-support.patch | 1346 --------------------
 qemu.spec                                          |  101 +--
 sources                                            |    2 +-
 40 files changed, 239 insertions(+), 3716 deletions(-)
---
diff --git a/.gitignore b/.gitignore
index 9b14986..fa85789 100644
--- a/.gitignore
+++ b/.gitignore
@@ -5,3 +5,5 @@ qemu-kvm-0.13.0-25fdf4a.tar.gz
 /qemu-kvm-0.14.0-3593e6b.tar.gz
 /qemu-kvm-0.14.0-7aa8c46.tar.gz
 /qemu-kvm-0.15.0-525e3df.tar.gz
+/qemu-kvm-0.15.0-fda1906.tar.gz
+/qemu-kvm-0.15.0-59fadcc.tar.gz
diff --git a/0025-char-Split-out-tcp-socket-close-code-in-a-separate-f.patch b/0001-char-Split-out-tcp-socket-close-code-in-a-separate-f.patch
similarity index 84%
rename from 0025-char-Split-out-tcp-socket-close-code-in-a-separate-f.patch
rename to 0001-char-Split-out-tcp-socket-close-code-in-a-separate-f.patch
index 2632655..e92a81a 100644
--- a/0025-char-Split-out-tcp-socket-close-code-in-a-separate-f.patch
+++ b/0001-char-Split-out-tcp-socket-close-code-in-a-separate-f.patch
@@ -1,7 +1,7 @@
-From d24514c807c4cddfe5f919bd01cb1a9cd3f21b10 Mon Sep 17 00:00:00 2001
+From 47d0d4d2d16bdbb3e80b6c9a29b9db3f81f1d6fd Mon Sep 17 00:00:00 2001
 From: Amit Shah <amit.shah at redhat.com>
 Date: Mon, 21 Mar 2011 21:57:47 +0100
-Subject: [PATCH 25/35] char: Split out tcp socket close code in a separate
+Subject: [PATCH 01/13] char: Split out tcp socket close code in a separate
  function
 
 Signed-off-by: Amit Shah <amit.shah at redhat.com>
@@ -10,10 +10,10 @@ Signed-off-by: Amit Shah <amit.shah at redhat.com>
  1 files changed, 16 insertions(+), 9 deletions(-)
 
 diff --git a/qemu-char.c b/qemu-char.c
-index fb13b28..75efa60 100644
+index dcf7065..1701bdf 100644
 --- a/qemu-char.c
 +++ b/qemu-char.c
-@@ -1917,6 +1917,21 @@ typedef struct {
+@@ -1945,6 +1945,21 @@ typedef struct {
  
  static void tcp_chr_accept(void *opaque);
  
@@ -35,7 +35,7 @@ index fb13b28..75efa60 100644
  static int tcp_chr_write(CharDriverState *chr, const uint8_t *buf, int len)
  {
      TCPCharDriver *s = chr->opaque;
-@@ -2067,15 +2082,7 @@ static void tcp_chr_read(void *opaque)
+@@ -2095,15 +2110,7 @@ static void tcp_chr_read(void *opaque)
          len = s->max_size;
      size = tcp_chr_recv(chr, (void *)buf, len);
      if (size == 0) {
diff --git a/0026-char-Add-a-QemuChrHandlers-struct-to-initialise-char.patch b/0002-char-Add-a-QemuChrHandlers-struct-to-initialise-char.patch
similarity index 95%
rename from 0026-char-Add-a-QemuChrHandlers-struct-to-initialise-char.patch
rename to 0002-char-Add-a-QemuChrHandlers-struct-to-initialise-char.patch
index 7433073..1fd460c 100644
--- a/0026-char-Add-a-QemuChrHandlers-struct-to-initialise-char.patch
+++ b/0002-char-Add-a-QemuChrHandlers-struct-to-initialise-char.patch
@@ -1,7 +1,7 @@
-From 7a78607683a3c3a25ab715d6a5e137be9cf29e66 Mon Sep 17 00:00:00 2001
+From ffef9f85d32395989a3c5845dfe34d2110ccb82b Mon Sep 17 00:00:00 2001
 From: Amit Shah <amit.shah at redhat.com>
 Date: Mon, 21 Mar 2011 20:31:45 +0100
-Subject: [PATCH 26/35] char: Add a QemuChrHandlers struct to initialise
+Subject: [PATCH 02/13] char: Add a QemuChrHandlers struct to initialise
  chardev handlers
 
 Instead of passing each handler in the qemu_add_handlers() function,
@@ -306,7 +306,7 @@ index 09090e9..5438660 100644
  
      return 0;
 diff --git a/hw/mcf_uart.c b/hw/mcf_uart.c
-index db57096..9928c11 100644
+index 905e116..bb5740c 100644
 --- a/hw/mcf_uart.c
 +++ b/hw/mcf_uart.c
 @@ -268,6 +268,12 @@ static void mcf_uart_receive(void *opaque, const uint8_t *buf, int size)
@@ -359,7 +359,7 @@ index 56c90da..4412b1b 100644
  
      return 0;
 diff --git a/hw/pl011.c b/hw/pl011.c
-index 3b94b14..7b4f3ae 100644
+index 997ce84..37ba7f6 100644
 --- a/hw/pl011.c
 +++ b/hw/pl011.c
 @@ -260,6 +260,12 @@ static const VMStateDescription vmstate_pl011 = {
@@ -386,7 +386,7 @@ index 3b94b14..7b4f3ae 100644
      vmstate_register(&dev->qdev, -1, &vmstate_pl011, s);
      return 0;
 diff --git a/hw/pxa2xx.c b/hw/pxa2xx.c
-index ac5d95d..779081c 100644
+index cf93110..18bbe48 100644
 --- a/hw/pxa2xx.c
 +++ b/hw/pxa2xx.c
 @@ -2019,6 +2019,12 @@ static int pxa2xx_fir_load(QEMUFile *f, void *opaque, int version_id)
@@ -554,7 +554,7 @@ index 2ef7175..ac68022 100644
      if (s->fifo_size <= 0) {
          fprintf(stderr, "syborg_serial: fifo too small\n");
 diff --git a/hw/usb-serial.c b/hw/usb-serial.c
-index 59cb0fb..bebd900 100644
+index c69c437..45d48ee 100644
 --- a/hw/usb-serial.c
 +++ b/hw/usb-serial.c
 @@ -476,6 +476,12 @@ static void usb_serial_event(void *opaque, int event)
@@ -581,10 +581,10 @@ index 59cb0fb..bebd900 100644
      return 0;
  }
 diff --git a/hw/virtio-console.c b/hw/virtio-console.c
-index b076331..147a467 100644
+index fe5e188..cfc3087 100644
 --- a/hw/virtio-console.c
 +++ b/hw/virtio-console.c
-@@ -74,6 +74,12 @@ static void chr_event(void *opaque, int event)
+@@ -95,6 +95,12 @@ static void chr_event(void *opaque, int event)
      }
  }
  
@@ -597,7 +597,7 @@ index b076331..147a467 100644
  static int virtconsole_initfn(VirtIOSerialPort *port)
  {
      VirtConsole *vcon = DO_UPCAST(VirtConsole, port, port);
-@@ -86,8 +92,7 @@ static int virtconsole_initfn(VirtIOSerialPort *port)
+@@ -107,8 +113,7 @@ static int virtconsole_initfn(VirtIOSerialPort *port)
      }
  
      if (vcon->chr) {
@@ -607,7 +607,7 @@ index b076331..147a467 100644
          info->have_data = flush_buf;
          info->guest_open = guest_open;
          info->guest_close = guest_close;
-@@ -105,7 +110,7 @@ static int virtconsole_exitfn(VirtIOSerialPort *port)
+@@ -126,7 +131,7 @@ static int virtconsole_exitfn(VirtIOSerialPort *port)
  	 * Instead of closing the chardev, free it so it can be used
  	 * for other purposes.
  	 */
@@ -617,11 +617,11 @@ index b076331..147a467 100644
  
      return 0;
 diff --git a/hw/xen_console.c b/hw/xen_console.c
-index c6c8163..4c39310 100644
+index 8ef104c..85e8a22 100644
 --- a/hw/xen_console.c
 +++ b/hw/xen_console.c
-@@ -201,6 +201,11 @@ static int con_init(struct XenDevice *xendev)
-     return 0;
+@@ -212,6 +212,11 @@ out:
+     return ret;
  }
  
 +static const QemuChrHandlers xencons_handlers = {
@@ -632,7 +632,7 @@ index c6c8163..4c39310 100644
  static int con_connect(struct XenDevice *xendev)
  {
      struct XenConsole *con = container_of(xendev, struct XenConsole, xendev);
-@@ -221,9 +226,9 @@ static int con_connect(struct XenDevice *xendev)
+@@ -232,9 +237,9 @@ static int con_connect(struct XenDevice *xendev)
  	return -1;
  
      xen_be_bind_evtchn(&con->xendev);
@@ -645,7 +645,7 @@ index c6c8163..4c39310 100644
  
      xen_be_printf(xendev, 1, "ring mfn %d, remote port %d, local port %d, limit %zd\n",
  		  con->ring_ref,
-@@ -237,8 +242,9 @@ static void con_disconnect(struct XenDevice *xendev)
+@@ -248,8 +253,9 @@ static void con_disconnect(struct XenDevice *xendev)
  {
      struct XenConsole *con = container_of(xendev, struct XenConsole, xendev);
  
@@ -687,10 +687,10 @@ index 9b94e98..1845577 100644
  }
  
 diff --git a/monitor.c b/monitor.c
-index a6388a9..5e7ce62 100644
+index 718935b..5b79dde 100644
 --- a/monitor.c
 +++ b/monitor.c
-@@ -5238,6 +5238,18 @@ static void monitor_event(void *opaque, int event)
+@@ -5249,6 +5249,18 @@ static void monitor_event(void *opaque, int event)
   * End:
   */
  
@@ -709,7 +709,7 @@ index a6388a9..5e7ce62 100644
  void monitor_init(CharDriverState *chr, int flags)
  {
      static int is_first_init = 1;
-@@ -5260,12 +5272,10 @@ void monitor_init(CharDriverState *chr, int flags)
+@@ -5271,12 +5283,10 @@ void monitor_init(CharDriverState *chr, int flags)
      if (monitor_ctrl_mode(mon)) {
          mon->mc = qemu_mallocz(sizeof(MonitorControl));
          /* Control mode requires special handlers */
@@ -725,10 +725,10 @@ index a6388a9..5e7ce62 100644
  
      QLIST_INSERT_HEAD(&mon_list, mon, entry);
 diff --git a/net/slirp.c b/net/slirp.c
-index e057a14..6eb0c51 100644
+index 157b80a..8eeec7e 100644
 --- a/net/slirp.c
 +++ b/net/slirp.c
-@@ -576,6 +576,11 @@ static void guestfwd_read(void *opaque, const uint8_t *buf, int size)
+@@ -577,6 +577,11 @@ static void guestfwd_read(void *opaque, const uint8_t *buf, int size)
      slirp_socket_recv(fwd->slirp, fwd->server, fwd->port, buf, size);
  }
  
@@ -740,7 +740,7 @@ index e057a14..6eb0c51 100644
  static int slirp_guestfwd(SlirpState *s, const char *config_str,
                            int legacy_format)
  {
-@@ -632,8 +637,7 @@ static int slirp_guestfwd(SlirpState *s, const char *config_str,
+@@ -633,8 +638,7 @@ static int slirp_guestfwd(SlirpState *s, const char *config_str,
      fwd->port = port;
      fwd->slirp = s->slirp;
  
@@ -751,10 +751,10 @@ index e057a14..6eb0c51 100644
  
   fail_syntax:
 diff --git a/qemu-char.c b/qemu-char.c
-index 75efa60..ee763d5 100644
+index 1701bdf..1c33828 100644
 --- a/qemu-char.c
 +++ b/qemu-char.c
-@@ -190,19 +190,26 @@ void qemu_chr_send_event(CharDriverState *s, int event)
+@@ -195,19 +195,26 @@ void qemu_chr_send_event(CharDriverState *s, int event)
          s->chr_send_event(s, event);
  }
  
@@ -789,7 +789,7 @@ index 75efa60..ee763d5 100644
      s->handler_opaque = opaque;
      if (s->chr_update_read_handler)
          s->chr_update_read_handler(s);
-@@ -440,6 +447,12 @@ static void mux_chr_event(void *opaque, int event)
+@@ -447,6 +454,12 @@ static void mux_chr_event(void *opaque, int event)
          mux_chr_send_event(d, i, event);
  }
  
@@ -802,7 +802,7 @@ index 75efa60..ee763d5 100644
  static void mux_chr_update_read_handler(CharDriverState *chr)
  {
      MuxDriver *d = chr->opaque;
-@@ -454,8 +467,7 @@ static void mux_chr_update_read_handler(CharDriverState *chr)
+@@ -461,8 +474,7 @@ static void mux_chr_update_read_handler(CharDriverState *chr)
      d->chr_event[d->mux_cnt] = chr->chr_event;
      /* Fix up the real driver with mux routines */
      if (d->mux_cnt == 0) {
@@ -813,7 +813,7 @@ index 75efa60..ee763d5 100644
      if (d->focus != -1) {
          mux_chr_send_event(d, d->focus, CHR_EVENT_MUX_OUT);
 diff --git a/qemu-char.h b/qemu-char.h
-index 892c6da..c8e3f2b 100644
+index f361c6d..b8372ea 100644
 --- a/qemu-char.h
 +++ b/qemu-char.h
 @@ -1,6 +1,7 @@
@@ -824,7 +824,7 @@ index 892c6da..c8e3f2b 100644
  #include "qemu-common.h"
  #include "qemu-queue.h"
  #include "qemu-option.h"
-@@ -76,6 +77,13 @@ struct CharDriverState {
+@@ -77,6 +78,13 @@ struct CharDriverState {
      QTAILQ_ENTRY(CharDriverState) next;
  };
  
@@ -838,7 +838,7 @@ index 892c6da..c8e3f2b 100644
  QemuOpts *qemu_chr_parse_compat(const char *label, const char *filename);
  CharDriverState *qemu_chr_open_opts(QemuOpts *opts,
                                      void (*init)(struct CharDriverState *s));
-@@ -88,10 +96,7 @@ void qemu_chr_printf(CharDriverState *s, const char *fmt, ...)
+@@ -89,10 +97,7 @@ void qemu_chr_printf(CharDriverState *s, const char *fmt, ...)
      GCC_FMT_ATTR(2, 3);
  int qemu_chr_write(CharDriverState *s, const uint8_t *buf, int len);
  void qemu_chr_send_event(CharDriverState *s, int event);
diff --git a/0027-iohandlers-Add-enable-disable_write_fd_handler-funct.patch b/0003-iohandlers-Add-enable-disable_write_fd_handler-funct.patch
similarity index 88%
rename from 0027-iohandlers-Add-enable-disable_write_fd_handler-funct.patch
rename to 0003-iohandlers-Add-enable-disable_write_fd_handler-funct.patch
index 9c6620a..cb2c9a2 100644
--- a/0027-iohandlers-Add-enable-disable_write_fd_handler-funct.patch
+++ b/0003-iohandlers-Add-enable-disable_write_fd_handler-funct.patch
@@ -1,7 +1,7 @@
-From 328ddb228ed9e5509b8418b1f34de6d6aff83d62 Mon Sep 17 00:00:00 2001
+From cb93720645e20825259dbb4d2f833b05a98e3062 Mon Sep 17 00:00:00 2001
 From: Amit Shah <amit.shah at redhat.com>
 Date: Mon, 21 Mar 2011 20:32:58 +0100
-Subject: [PATCH 27/35] iohandlers: Add enable/disable_write_fd_handler()
+Subject: [PATCH 03/13] iohandlers: Add enable/disable_write_fd_handler()
  functions
 
 These will be used to provide a cleaner API for the nonblocking case.
@@ -59,10 +59,10 @@ index 2b82421..8e6628b 100644
  /* XXX: fd_read_poll should be suppressed, but an API change is
     necessary in the character devices to suppress fd_can_read(). */
 diff --git a/qemu-char.h b/qemu-char.h
-index c8e3f2b..7d5dc6c 100644
+index b8372ea..9fe1b82 100644
 --- a/qemu-char.h
 +++ b/qemu-char.h
-@@ -121,6 +121,9 @@ size_t qemu_chr_mem_osize(const CharDriverState *chr);
+@@ -123,6 +123,9 @@ size_t qemu_chr_mem_osize(const CharDriverState *chr);
  
  /* async I/O support */
  
diff --git a/0028-char-Add-framework-for-a-write-unblocked-callback.patch b/0004-char-Add-framework-for-a-write-unblocked-callback.patch
similarity index 84%
rename from 0028-char-Add-framework-for-a-write-unblocked-callback.patch
rename to 0004-char-Add-framework-for-a-write-unblocked-callback.patch
index dc32f9b..36ec50d 100644
--- a/0028-char-Add-framework-for-a-write-unblocked-callback.patch
+++ b/0004-char-Add-framework-for-a-write-unblocked-callback.patch
@@ -1,7 +1,7 @@
-From 59ff8a6457e82aadad7529602da68406de374a33 Mon Sep 17 00:00:00 2001
+From 66945912c4bd1bc70f3221288a4e7acc5717b336 Mon Sep 17 00:00:00 2001
 From: Amit Shah <amit.shah at redhat.com>
 Date: Mon, 21 Mar 2011 21:41:42 +0100
-Subject: [PATCH 28/35] char: Add framework for a 'write unblocked' callback
+Subject: [PATCH 04/13] 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
@@ -16,10 +16,10 @@ Signed-off-by: Amit Shah <amit.shah at redhat.com>
  2 files changed, 7 insertions(+), 0 deletions(-)
 
 diff --git a/qemu-char.c b/qemu-char.c
-index ee763d5..830f0c3 100644
+index 1c33828..ec4eb68 100644
 --- a/qemu-char.c
 +++ b/qemu-char.c
-@@ -209,11 +209,14 @@ void qemu_chr_add_handlers(CharDriverState *s,
+@@ -214,11 +214,14 @@ void qemu_chr_add_handlers(CharDriverState *s,
      }
      s->chr_can_read = handlers->fd_can_read;
      s->chr_read = handlers->fd_read;
@@ -35,10 +35,10 @@ index ee763d5..830f0c3 100644
         also get the open event */
      if (s->opened) {
 diff --git a/qemu-char.h b/qemu-char.h
-index 7d5dc6c..e942bdf 100644
+index 9fe1b82..68e7b5b 100644
 --- a/qemu-char.h
 +++ b/qemu-char.h
-@@ -61,6 +61,9 @@ struct CharDriverState {
+@@ -62,6 +62,9 @@ struct CharDriverState {
      IOEventHandler *chr_event;
      IOCanReadHandler *chr_can_read;
      IOReadHandler *chr_read;
@@ -48,7 +48,7 @@ index 7d5dc6c..e942bdf 100644
      void *handler_opaque;
      void (*chr_send_event)(struct CharDriverState *chr, int event);
      void (*chr_close)(struct CharDriverState *chr);
-@@ -74,6 +77,7 @@ struct CharDriverState {
+@@ -75,6 +78,7 @@ struct CharDriverState {
      char *filename;
      int opened;
      int avail_connections;
diff --git a/0029-char-Update-send_all-to-handle-nonblocking-chardev-w.patch b/0005-char-Update-send_all-to-handle-nonblocking-chardev-w.patch
similarity index 90%
rename from 0029-char-Update-send_all-to-handle-nonblocking-chardev-w.patch
rename to 0005-char-Update-send_all-to-handle-nonblocking-chardev-w.patch
index db4edba..ead1e8b 100644
--- a/0029-char-Update-send_all-to-handle-nonblocking-chardev-w.patch
+++ b/0005-char-Update-send_all-to-handle-nonblocking-chardev-w.patch
@@ -1,7 +1,7 @@
-From 4178a8240badad028ffd13482352510ad6a050e4 Mon Sep 17 00:00:00 2001
+From 8aab343e17b05abb051105cdb367edb4deef0c60 Mon Sep 17 00:00:00 2001
 From: Amit Shah <amit.shah at redhat.com>
 Date: Mon, 21 Mar 2011 22:00:27 +0100
-Subject: [PATCH 29/35] char: Update send_all() to handle nonblocking chardev
+Subject: [PATCH 05/13] char: Update send_all() to handle nonblocking chardev
  write requests
 
 The send_all function is modified to return to the caller in case the
@@ -37,10 +37,10 @@ index bc1bf58..a40687a 100644
  
  static ssize_t net_socket_receive_dgram(VLANClientState *nc, const uint8_t *buf, size_t size)
 diff --git a/qemu-char.c b/qemu-char.c
-index 830f0c3..88b22c3 100644
+index ec4eb68..8789627 100644
 --- a/qemu-char.c
 +++ b/qemu-char.c
-@@ -506,7 +506,7 @@ static CharDriverState *qemu_chr_open_mux(CharDriverState *drv)
+@@ -513,7 +513,7 @@ static CharDriverState *qemu_chr_open_mux(CharDriverState *drv)
  
  
  #ifdef _WIN32
@@ -49,7 +49,7 @@ index 830f0c3..88b22c3 100644
  {
      int ret, len;
  
-@@ -514,9 +514,14 @@ int send_all(int fd, const void *buf, int len1)
+@@ -521,9 +521,14 @@ int send_all(int fd, const void *buf, int len1)
      while (len > 0) {
          ret = send(fd, buf, len, 0);
          if (ret < 0) {
@@ -64,7 +64,7 @@ index 830f0c3..88b22c3 100644
              }
          } else if (ret == 0) {
              break;
-@@ -530,7 +535,7 @@ int send_all(int fd, const void *buf, int len1)
+@@ -537,7 +542,7 @@ int send_all(int fd, const void *buf, int len1)
  
  #else
  
@@ -73,7 +73,7 @@ index 830f0c3..88b22c3 100644
  {
      int ret, len;
      const uint8_t *buf = _buf;
-@@ -539,8 +544,15 @@ int send_all(int fd, const void *_buf, int len1)
+@@ -546,8 +551,15 @@ int send_all(int fd, const void *_buf, int len1)
      while (len > 0) {
          ret = write(fd, buf, len);
          if (ret < 0) {
@@ -90,7 +90,7 @@ index 830f0c3..88b22c3 100644
          } else if (ret == 0) {
              break;
          } else {
-@@ -552,6 +564,55 @@ int send_all(int fd, const void *_buf, int len1)
+@@ -559,6 +571,55 @@ int send_all(int fd, const void *_buf, int len1)
  }
  #endif /* !_WIN32 */
  
@@ -146,7 +146,7 @@ index 830f0c3..88b22c3 100644
  #ifndef _WIN32
  
  typedef struct {
-@@ -565,7 +626,7 @@ static int stdio_nb_clients = 0;
+@@ -572,7 +633,7 @@ static int stdio_nb_clients = 0;
  static int fd_chr_write(CharDriverState *chr, const uint8_t *buf, int len)
  {
      FDCharDriver *s = chr->opaque;
@@ -155,7 +155,7 @@ index 830f0c3..88b22c3 100644
  }
  
  static int fd_chr_read_poll(void *opaque)
-@@ -881,7 +942,7 @@ static int pty_chr_write(CharDriverState *chr, const uint8_t *buf, int len)
+@@ -897,7 +958,7 @@ static int pty_chr_write(CharDriverState *chr, const uint8_t *buf, int len)
          pty_chr_update_read_handler(chr);
          return 0;
      }
@@ -164,7 +164,7 @@ index 830f0c3..88b22c3 100644
  }
  
  static int pty_chr_read_poll(void *opaque)
-@@ -1950,8 +2011,15 @@ static void tcp_closed(void *opaque)
+@@ -1978,8 +2039,15 @@ static void tcp_closed(void *opaque)
  static int tcp_chr_write(CharDriverState *chr, const uint8_t *buf, int len)
  {
      TCPCharDriver *s = chr->opaque;
diff --git a/0030-char-Equip-the-unix-tcp-backend-to-handle-nonblockin.patch b/0006-char-Equip-the-unix-tcp-backend-to-handle-nonblockin.patch
similarity index 83%
rename from 0030-char-Equip-the-unix-tcp-backend-to-handle-nonblockin.patch
rename to 0006-char-Equip-the-unix-tcp-backend-to-handle-nonblockin.patch
index 0594e32..d8fcefc 100644
--- a/0030-char-Equip-the-unix-tcp-backend-to-handle-nonblockin.patch
+++ b/0006-char-Equip-the-unix-tcp-backend-to-handle-nonblockin.patch
@@ -1,7 +1,7 @@
-From 56cbfb533c04cde3a55c1345ea0f9097b1ab13fa Mon Sep 17 00:00:00 2001
+From 9a773de6f770bf2f05acca786e14abd79a9f930c Mon Sep 17 00:00:00 2001
 From: Amit Shah <amit.shah at redhat.com>
 Date: Mon, 21 Mar 2011 22:02:47 +0100
-Subject: [PATCH 30/35] char: Equip the unix/tcp backend to handle nonblocking
+Subject: [PATCH 06/13] char: Equip the unix/tcp backend to handle nonblocking
  writes#
 
 Now that the infrastructure is in place to return -EAGAIN to callers,
@@ -18,7 +18,7 @@ Signed-off-by: Amit Shah <amit.shah at redhat.com>
  1 files changed, 34 insertions(+), 0 deletions(-)
 
 diff --git a/qemu-char.c b/qemu-char.c
-index 88b22c3..e9d7f0a 100644
+index 8789627..d811f2a 100644
 --- a/qemu-char.c
 +++ b/qemu-char.c
 @@ -106,6 +106,19 @@
@@ -41,7 +41,7 @@ index 88b22c3..e9d7f0a 100644
  static void qemu_chr_event(CharDriverState *s, int event)
  {
      /* Keep track if the char device is open */
-@@ -2268,6 +2281,25 @@ static void tcp_chr_close(CharDriverState *chr)
+@@ -2308,6 +2321,25 @@ static void tcp_chr_close(CharDriverState *chr)
      qemu_chr_event(chr, CHR_EVENT_CLOSED);
  }
  
@@ -64,13 +64,13 @@ index 88b22c3..e9d7f0a 100644
 +    disable_write_fd_handler(s->fd);
 +}
 +
- static CharDriverState *qemu_chr_open_socket(QemuOpts *opts)
+ static int qemu_chr_open_socket(QemuOpts *opts, CharDriverState **_chr)
  {
      CharDriverState *chr = NULL;
-@@ -2320,6 +2352,8 @@ static CharDriverState *qemu_chr_open_socket(QemuOpts *opts)
-     chr->chr_write = tcp_chr_write;
+@@ -2364,6 +2396,8 @@ static int qemu_chr_open_socket(QemuOpts *opts, CharDriverState **_chr)
      chr->chr_close = tcp_chr_close;
      chr->get_msgfd = tcp_get_msgfd;
+     chr->chr_add_client = tcp_chr_add_client;
 +    chr->chr_enable_write_fd_handler = tcp_enable_write_fd_handler;
 +    chr->chr_disable_write_fd_handler = tcp_disable_write_fd_handler;
  
diff --git a/0031-char-Throttle-when-host-connection-is-down.patch b/0007-char-Throttle-when-host-connection-is-down.patch
similarity index 88%
rename from 0031-char-Throttle-when-host-connection-is-down.patch
rename to 0007-char-Throttle-when-host-connection-is-down.patch
index a60c0e7..edfd98e 100644
--- a/0031-char-Throttle-when-host-connection-is-down.patch
+++ b/0007-char-Throttle-when-host-connection-is-down.patch
@@ -1,7 +1,7 @@
-From 00cf9482be18cdacda0ae9b207b84a7e86ca1d11 Mon Sep 17 00:00:00 2001
+From 7e19009aa497ae5bc2da8dfedb956f8a705698f1 Mon Sep 17 00:00:00 2001
 From: Amit Shah <amit.shah at redhat.com>
 Date: Mon, 21 Mar 2011 22:05:10 +0100
-Subject: [PATCH 31/35] char: Throttle when host connection is down#
+Subject: [PATCH 07/13] 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
@@ -20,7 +20,7 @@ Signed-off-by: Amit Shah <amit.shah at redhat.com>
  1 files changed, 14 insertions(+), 0 deletions(-)
 
 diff --git a/qemu-char.c b/qemu-char.c
-index e9d7f0a..77ab1ed 100644
+index d811f2a..111fdc8 100644
 --- a/qemu-char.c
 +++ b/qemu-char.c
 @@ -140,6 +140,9 @@ static void qemu_chr_generic_open_bh(void *opaque)
@@ -33,7 +33,7 @@ index e9d7f0a..77ab1ed 100644
      qemu_bh_delete(s->bh);
      s->bh = NULL;
  }
-@@ -2031,6 +2034,17 @@ static int tcp_chr_write(CharDriverState *chr, const uint8_t *buf, int len)
+@@ -2059,6 +2062,17 @@ static int tcp_chr_write(CharDriverState *chr, const uint8_t *buf, int len)
          ret = send_all(chr, s->fd, buf, len);
          if (ret == -1 && errno == EPIPE) {
              tcp_closed(chr);
diff --git a/0032-virtio-console-Enable-port-throttling-when-chardev-i.patch b/0008-virtio-console-Enable-port-throttling-when-chardev-i.patch
similarity index 83%
rename from 0032-virtio-console-Enable-port-throttling-when-chardev-i.patch
rename to 0008-virtio-console-Enable-port-throttling-when-chardev-i.patch
index 4d130a8..a3c07df 100644
--- a/0032-virtio-console-Enable-port-throttling-when-chardev-i.patch
+++ b/0008-virtio-console-Enable-port-throttling-when-chardev-i.patch
@@ -1,7 +1,7 @@
-From ba203585e61d1fbe6ba45683d958d261678641ad Mon Sep 17 00:00:00 2001
+From badc85629db4d774f3b5b41070474bd5479d5be3 Mon Sep 17 00:00:00 2001
 From: Amit Shah <amit.shah at redhat.com>
 Date: Mon, 21 Mar 2011 22:06:41 +0100
-Subject: [PATCH 32/35] virtio-console: Enable port throttling when chardev is
+Subject: [PATCH 08/13] 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
@@ -16,10 +16,10 @@ Signed-off-by: Amit Shah <amit.shah at redhat.com>
  1 files changed, 11 insertions(+), 0 deletions(-)
 
 diff --git a/hw/virtio-console.c b/hw/virtio-console.c
-index 147a467..9286f6e 100644
+index cfc3087..b91f46e 100644
 --- a/hw/virtio-console.c
 +++ b/hw/virtio-console.c
-@@ -19,6 +19,16 @@ typedef struct VirtConsole {
+@@ -20,6 +20,16 @@ typedef struct VirtConsole {
      CharDriverState *chr;
  } VirtConsole;
  
@@ -36,7 +36,7 @@ index 147a467..9286f6e 100644
  
  /* 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)
-@@ -78,6 +88,7 @@ static const QemuChrHandlers chr_handlers = {
+@@ -99,6 +109,7 @@ static const QemuChrHandlers chr_handlers = {
      .fd_can_read = chr_can_read,
      .fd_read = chr_read,
      .fd_event = chr_event,
diff --git a/0033-spice-qemu-char.c-add-throttling.patch b/0009-spice-qemu-char.c-add-throttling.patch
similarity index 95%
rename from 0033-spice-qemu-char.c-add-throttling.patch
rename to 0009-spice-qemu-char.c-add-throttling.patch
index 0696f81..7c2b68b 100644
--- a/0033-spice-qemu-char.c-add-throttling.patch
+++ b/0009-spice-qemu-char.c-add-throttling.patch
@@ -1,7 +1,7 @@
-From 7322ad318ecde8669e68ef1314e97b4553a327fa Mon Sep 17 00:00:00 2001
+From 433a034b4ee87fe228be4e7f7e4399101d1e33c8 Mon Sep 17 00:00:00 2001
 From: Alon Levy <alevy at redhat.com>
 Date: Tue, 22 Mar 2011 12:27:59 +0200
-Subject: [PATCH 33/35] spice-qemu-char.c: add throttling
+Subject: [PATCH 09/13] spice-qemu-char.c: add throttling
 
 BZ: 672191
 
@@ -39,7 +39,7 @@ is reworked to use glib.
  1 files changed, 35 insertions(+), 4 deletions(-)
 
 diff --git a/spice-qemu-char.c b/spice-qemu-char.c
-index 605c241..9348f65 100644
+index 95bf6b6..0f72e91 100644
 --- a/spice-qemu-char.c
 +++ b/spice-qemu-char.c
 @@ -1,4 +1,6 @@
@@ -120,7 +120,7 @@ index 605c241..9348f65 100644
  }
  
  static void spice_chr_close(struct CharDriverState *chr)
-@@ -196,6 +226,7 @@ CharDriverState *qemu_chr_open_spice(QemuOpts *opts)
+@@ -196,6 +226,7 @@ int qemu_chr_open_spice(QemuOpts *opts, CharDriverState **_chr)
      chr->chr_close = spice_chr_close;
      chr->chr_guest_open = spice_chr_guest_open;
      chr->chr_guest_close = spice_chr_guest_close;
diff --git a/0034-spice-qemu-char.c-remove-intermediate-buffer.patch b/0010-spice-qemu-char.c-remove-intermediate-buffer.patch
similarity index 94%
rename from 0034-spice-qemu-char.c-remove-intermediate-buffer.patch
rename to 0010-spice-qemu-char.c-remove-intermediate-buffer.patch
index c2a5c69..3999246 100644
--- a/0034-spice-qemu-char.c-remove-intermediate-buffer.patch
+++ b/0010-spice-qemu-char.c-remove-intermediate-buffer.patch
@@ -1,7 +1,7 @@
-From 8b7c5738faa2c7851ecc92182467a564bf7c9109 Mon Sep 17 00:00:00 2001
+From 7735740bd0c9f2d9585c64cc5f975dd03f2a7c11 Mon Sep 17 00:00:00 2001
 From: Alon Levy <alevy at redhat.com>
 Date: Tue, 22 Mar 2011 12:28:00 +0200
-Subject: [PATCH 34/35] spice-qemu-char.c: remove intermediate buffer
+Subject: [PATCH 10/13] spice-qemu-char.c: remove intermediate buffer
 
 BZ: 672191
 upstream: not submitted (explained below)
@@ -20,7 +20,7 @@ can't go upstream right now as explained in that patch.
  1 files changed, 6 insertions(+), 12 deletions(-)
 
 diff --git a/spice-qemu-char.c b/spice-qemu-char.c
-index 9348f65..ce75e91 100644
+index 0f72e91..2b8aec4 100644
 --- a/spice-qemu-char.c
 +++ b/spice-qemu-char.c
 @@ -23,9 +23,8 @@ typedef struct SpiceCharDriver {
diff --git a/0035-usb-redir-Add-flow-control-support.patch b/0011-usb-redir-Add-flow-control-support.patch
similarity index 92%
rename from 0035-usb-redir-Add-flow-control-support.patch
rename to 0011-usb-redir-Add-flow-control-support.patch
index c03c813..f23ad36 100644
--- a/0035-usb-redir-Add-flow-control-support.patch
+++ b/0011-usb-redir-Add-flow-control-support.patch
@@ -1,7 +1,7 @@
-From f7f2f55e2a8beb68fc81c1def7a0a4436664ed97 Mon Sep 17 00:00:00 2001
+From 2b797647b4a85a765bfdd8f4539d1fa10daad4fa Mon Sep 17 00:00:00 2001
 From: Hans de Goede <hdegoede at redhat.com>
 Date: Tue, 19 Jul 2011 10:56:19 +0200
-Subject: [PATCH 35/35] usb-redir: Add flow control support
+Subject: [PATCH 11/13] usb-redir: Add flow control support
 
 Signed-off-by: Hans de Goede <hdegoede at redhat.com>
 ---
diff --git a/0012-usb-redir-Call-qemu_chr_guest_open-close.patch b/0012-usb-redir-Call-qemu_chr_guest_open-close.patch
new file mode 100644
index 0000000..bcf6f9c
--- /dev/null
+++ b/0012-usb-redir-Call-qemu_chr_guest_open-close.patch
@@ -0,0 +1,37 @@
+From 824ab3383370291885f1a18978018a41cfac7ee8 Mon Sep 17 00:00:00 2001
+From: Hans de Goede <hdegoede at redhat.com>
+Date: Thu, 21 Jul 2011 16:28:06 +0200
+Subject: [PATCH 12/13] 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.
+
+Signed-off-by: Hans de Goede <hdegoede at redhat.com>
+---
+ usb-redir.c |    3 +++
+ 1 files changed, 3 insertions(+), 0 deletions(-)
+
+diff --git a/usb-redir.c b/usb-redir.c
+index 6932beb..d1aafda 100644
+--- a/usb-redir.c
++++ b/usb-redir.c
+@@ -840,6 +840,8 @@ static int usbredir_initfn(USBDevice *udev)
+     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);
+ 
+     return 0;
+ }
+@@ -861,6 +863,7 @@ static void usbredir_handle_destroy(USBDevice *udev)
+ {
+     USBRedirDevice *dev = DO_UPCAST(USBRedirDevice, dev, udev);
+ 
++    qemu_chr_guest_close(dev->cs);
+     qemu_chr_close(dev->cs);
+     /* Note must be done after qemu_chr_close, as that causes a close event */
+     qemu_bh_delete(dev->open_close_bh);
+-- 
+1.7.5.1
+
diff --git a/0013-spice-qemu-char-Generate-chardev-open-close-events.patch b/0013-spice-qemu-char-Generate-chardev-open-close-events.patch
new file mode 100644
index 0000000..2ba39ad
--- /dev/null
+++ b/0013-spice-qemu-char-Generate-chardev-open-close-events.patch
@@ -0,0 +1,90 @@
+From 5149f056bd4fbeeb0ce3b850febe213a305a348b Mon Sep 17 00:00:00 2001
+From: Hans de Goede <hdegoede at redhat.com>
+Date: Thu, 21 Jul 2011 15:36:40 +0200
+Subject: [PATCH 13/13] 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.
+
+Note that for all but the newest spice-server versions (which have a fix for
+this) the code ignores these events for a spicevmc with a subtype of vdagent,
+this subtype specific knowledge is undesirable, but unavoidable for now, see:
+http://lists.freedesktop.org/archives/spice-devel/2011-July/004837.html
+
+Signed-off-by: Hans de Goede <hdegoede at redhat.com>
+---
+ spice-qemu-char.c |   46 +++++++++++++++++++++++++++++++++++++++++++++-
+ 1 files changed, 45 insertions(+), 1 deletions(-)
+
+diff --git a/spice-qemu-char.c b/spice-qemu-char.c
+index 2b8aec4..1f4f1ec 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)
+     return bytes;
+ }
+ 
++static void vmc_state(SpiceCharDeviceInstance *sin, int connected)
++{
++    SpiceCharDriver *scd = container_of(sin, SpiceCharDriver, sin);
++    int event;
++
++#if SPICE_SERVER_VERSION < 0x000901
++    /*
++     * spice-server calls the state callback for the agent channel when the
++     * spice client connects / disconnects. Given that not the client but
++     * the server is doing the parsing of the messages this is wrong as the
++     * server is still listening. Worse, this causes the parser in the server
++     * to go out of sync, so we ignore state calls for subtype vdagent
++     * spicevmc chardevs. For the full story see:
++     * http://lists.freedesktop.org/archives/spice-devel/2011-July/004837.html
++     */
++    if (strcmp(sin->subtype, "vdagent") == 0) {
++        return;
++    }
++#endif
++
++    if ((scd->chr->opened && connected) ||
++        (!scd->chr->opened && !connected)) {
++        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);
++    }
++}
++
+ static SpiceCharDeviceInterface vmc_interface = {
+     .base.type          = SPICE_INTERFACE_CHAR_DEVICE,
+     .base.description   = "spice virtual channel char device",
+     .base.major_version = SPICE_INTERFACE_CHAR_DEVICE_MAJOR,
+     .base.minor_version = SPICE_INTERFACE_CHAR_DEVICE_MINOR,
++    .state              = vmc_state,
+     .write              = vmc_write,
+     .read               = vmc_read,
+ };
+@@ -222,7 +261,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);
+ 
+-    qemu_chr_generic_open(chr);
++#if SPICE_SERVER_VERSION < 0x000901
++    /* See comment in vmc_state() */
++    if (strcmp(subtype, "vdagent") == 0) {
++        qemu_chr_generic_open(chr);
++    }
++#endif
+ 
+     *_chr = chr;
+     return 0;
+-- 
+1.7.5.1
+
diff --git a/qemu.spec b/qemu.spec
index f423c2b..0d88168 100644
--- a/qemu.spec
+++ b/qemu.spec
@@ -1,9 +1,9 @@
-%define githead 525e3df
+%define githead 59fadcc
 
 Summary: QEMU is a FAST! processor emulator
 Name: qemu
 Version: 0.15.0
-Release: 0.2.20110718%githead%{?dist}
+Release: 0.2.20110728%githead%{?dist}
 # Epoch because we pushed a qemu-1.0 package
 Epoch: 2
 License: GPLv2+ and LGPLv2+ and BSD
@@ -22,7 +22,7 @@ URL: http://www.qemu.org/
 # 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/ 525e3df | gzip > qemu-kvm-0.15.0-525e3df.tar.gz
+# git archive --format=tar --prefix=qemu-kvm-0.15.0/ 59fadcc | gzip > qemu-kvm-0.15.0-59fadcc.tar.gz
 Source0: qemu-kvm-%{version}-%{githead}.tar.gz
 
 Source1: qemu.init
@@ -40,45 +40,20 @@ Source6: ksmtuned.init
 Source7: ksmtuned
 Source8: ksmtuned.conf
 
-# Sync with: http://www.kraxel.org/cgit/qemu/log/?h=usb.19
-# USB patches waiting to be pulled by upstream
-Patch1:  0001-hw-usb-musb.c-Don-t-misuse-usb_packet_complete.patch
-Patch2:  0002-usb-Add-a-usb_fill_port-helper-function.patch
-Patch3:  0003-usb-Move-initial-call-of-usb_port_location-to-usb_fi.patch
-Patch4:  0004-usb-Add-a-register_companion-USB-bus-op.patch
-Patch5:  0005-usb-Make-port-wakeup-and-complete-ops-take-a-USBPort.patch
-Patch6:  0006-usb-Replace-device_destroy-bus-op-with-a-child_detac.patch
-Patch7:  0007-usb-ehci-drop-unused-num-ports-state-member.patch
-Patch8:  0008-usb-ehci-Connect-Status-bit-is-read-only-don-t-allow.patch
-Patch9:  0009-usb-ehci-cleanup-port-reset-handling.patch
-Patch10: 0010-usb-assert-on-calling-usb_attach-port-NULL-on-a-port.patch
-Patch11: 0011-usb-ehci-Fix-handling-of-PED-and-PEDC-port-status-bi.patch
-Patch12: 0012-usb-ehci-Add-support-for-registering-companion-contr.patch
-Patch13: 0013-usb-uhci-Add-support-for-being-a-companion-controlle.patch
-Patch14: 0014-usb-ohci-Add-support-for-being-a-companion-controlle.patch
-Patch15: 0015-pci-add-ich9-usb-controller-ids.patch
-Patch16: 0016-uhci-add-ich9-controllers.patch
-Patch17: 0017-ehci-fix-port-count.patch
-Patch18: 0018-ehci-add-ich9-controller.patch
-Patch19: 0019-usb-update-documentation.patch
-Patch20: 0020-usb_register_port-do-not-set-port-opaque-and-port-in.patch
-Patch21: 0021-usb-fixup-bluetooth-descriptors.patch
-Patch22: 0022-usb-hub-remove-unused-descriptor-arrays.patch
-Patch23: 0023-usb-ohci-raise-interrupt-on-attach.patch
-# Add usb-redir device, under review upstream
-Patch24: 0024-USB-add-usb-network-redirection-support.patch
 # Amit's flow control patches, waiting to glib conversion before going upstream
-Patch25: 0025-char-Split-out-tcp-socket-close-code-in-a-separate-f.patch
-Patch26: 0026-char-Add-a-QemuChrHandlers-struct-to-initialise-char.patch
-Patch27: 0027-iohandlers-Add-enable-disable_write_fd_handler-funct.patch
-Patch28: 0028-char-Add-framework-for-a-write-unblocked-callback.patch
-Patch29: 0029-char-Update-send_all-to-handle-nonblocking-chardev-w.patch
-Patch30: 0030-char-Equip-the-unix-tcp-backend-to-handle-nonblockin.patch
-Patch31: 0031-char-Throttle-when-host-connection-is-down.patch
-Patch32: 0032-virtio-console-Enable-port-throttling-when-chardev-i.patch
-Patch33: 0033-spice-qemu-char.c-add-throttling.patch
-Patch34: 0034-spice-qemu-char.c-remove-intermediate-buffer.patch
-Patch35: 0035-usb-redir-Add-flow-control-support.patch
+Patch01: 0001-char-Split-out-tcp-socket-close-code-in-a-separate-f.patch
+Patch02: 0002-char-Add-a-QemuChrHandlers-struct-to-initialise-char.patch
+Patch03: 0003-iohandlers-Add-enable-disable_write_fd_handler-funct.patch
+Patch04: 0004-char-Add-framework-for-a-write-unblocked-callback.patch
+Patch05: 0005-char-Update-send_all-to-handle-nonblocking-chardev-w.patch
+Patch06: 0006-char-Equip-the-unix-tcp-backend-to-handle-nonblockin.patch
+Patch07: 0007-char-Throttle-when-host-connection-is-down.patch
+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
 
 BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
 BuildRequires: SDL-devel zlib-devel which texi2html gnutls-devel cyrus-sasl-devel
@@ -252,41 +227,19 @@ such as kvm_stat.
 
 %prep
 %setup -q -n qemu-kvm-%{version}
-%patch1 -p1
-%patch2 -p1
-%patch3 -p1
-%patch4 -p1
-%patch5 -p1
-%patch6 -p1
-%patch7 -p1
-%patch8 -p1
-%patch9 -p1
+%patch01 -p1
+%patch02 -p1
+%patch03 -p1
+%patch04 -p1
+%patch05 -p1
+%patch06 -p1
+%patch07 -p1
+%patch08 -p1
+%patch09 -p1
 %patch10 -p1
 %patch11 -p1
 %patch12 -p1
 %patch13 -p1
-%patch14 -p1
-%patch15 -p1
-%patch16 -p1
-%patch17 -p1
-%patch18 -p1
-%patch19 -p1
-%patch20 -p1
-%patch21 -p1
-%patch22 -p1
-%patch23 -p1
-%patch24 -p1
-%patch25 -p1
-%patch26 -p1
-%patch27 -p1
-%patch28 -p1
-%patch29 -p1
-%patch30 -p1
-%patch31 -p1
-%patch32 -p1
-%patch33 -p1
-%patch34 -p1
-%patch35 -p1
 
 %build
 # By default we build everything, but allow x86 to build a minimal version
@@ -515,6 +468,7 @@ fi
 %{_initddir}/qemu
 %{_bindir}/qemu-i386
 %{_bindir}/qemu-x86_64
+%{_bindir}/qemu-ga
 %if !%{with_x86only}
 %{_bindir}/qemu-alpha
 %{_bindir}/qemu-arm
@@ -596,6 +550,9 @@ fi
 %{_mandir}/man1/qemu-img.1*
 
 %changelog
+* Thu Jul 28 2011 Justin M. Forbes <jforbes at redhat.com> - 2:0.15.0-0.1.2011072859fadcc
+- Update to 0.15.0-rc0 as we prepare for 0.15.0 release
+
 * Tue Jul 19 2011 Hans de Goede <hdegoede at redhat.com> - 2:0.15.0-0.2.20110718525e3df
 - Add support usb redirection over the network, see:
   http://fedoraproject.org/wiki/Features/UsbNetworkRedirection
diff --git a/sources b/sources
index 2826ce6..ff5bb55 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-cbd0d49d1490ca90208609cd158eb080  qemu-kvm-0.15.0-525e3df.tar.gz
+b0d29c5405ec451421d98d335762ff7c  qemu-kvm-0.15.0-59fadcc.tar.gz


More information about the scm-commits mailing list