]> git.proxmox.com Git - pve-qemu-kvm.git/commitdiff
update to qemu 1.3 rc1
authorDietmar Maurer <dietmar@proxmox.com>
Thu, 22 Nov 2012 13:08:43 +0000 (14:08 +0100)
committerDietmar Maurer <dietmar@proxmox.com>
Thu, 22 Nov 2012 13:10:30 +0000 (14:10 +0100)
18 files changed:
Makefile
debian/changelog
debian/patches/adjust-path.diff
debian/patches/ahci-properly-reset-pxcmd.patch [deleted file]
debian/patches/enable-kvm-by-default.patch [new file with mode: 0644]
debian/patches/fairsched.diff
debian/patches/fix-qemu-img-snapshot-removal.patch
debian/patches/internal-snapshot-async.patch
debian/patches/keymap.diff
debian/patches/move-bdrv-snapshot-find.patch
debian/patches/pve-auth.patch
debian/patches/qemu-img-convert-skipcreate-option.patch
debian/patches/savevm-live.patch
debian/patches/series
debian/patches/sheepdog-fix-savevm-loadvm.patch [deleted file]
debian/patches/update-cpus-x86_64.conf-to-rhel6.2-version.patch [deleted file]
debian/rules
qemu-kvm-src.tar.gz

index f22633c68e04ed127d7788d659f75f20d6782083..08aae3d78cf677a9262b5d20bba728f7ec1373dc 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1,8 +1,8 @@
 RELEASE=2.2
 
 # also update debian/changelog
-KVMVER=1.2
-KVMPKGREL=7
+KVMVER=1.3
+KVMPKGREL=1
 
 KVMPACKAGE=pve-qemu-kvm
 KVMDIR=qemu-kvm
@@ -17,8 +17,7 @@ all: ${KVM_DEB} ${KVMSRC}
 .PHONY: download
 download:
        rm -rf ${KVMDIR} ${KVMSRC}
-       git clone git://git.kernel.org/pub/scm/virt/kvm/qemu-kvm.git -b master ${KVMDIR} 
-       #git clone git://git.kernel.org/pub/scm/virt/kvm/qemu-kvm.git -b stable-1.1 ${KVMDIR} 
+       git clone git://git.qemu-project.org/qemu.git -b master ${KVMDIR} 
        tar czf ${KVMSRC} --exclude CVS --exclude .git --exclude .svn ${KVMDIR}
 
 ${KVM_DEB} kvm: ${KVMSRC}
index d7b69371bb485ec0b4caa9d90dac08a4cbe24e14..e028e05ca5b7b4907b139cb4f30baa3a054c8dc0 100644 (file)
@@ -1,3 +1,17 @@
+pve-qemu-kvm (1.3-1) unstable; urgency=low
+
+  * update to qemu 1.3 rc1
+  
+  * we now use qemu sources directly
+  
+  * remove update-cpus-x86_64.conf-to-rhel6.2-version.patch
+  
+  * remove ahci-properly-reset-pxcmd.patch (upstream)
+  
+  * remove sheepdog-fix-savevm-loadvm.patch (upstream)
+  
+ -- Proxmox Support Team <support@proxmox.com>  Wed, 21 Nov 2012 12:48:56 +0100
+
 pve-qemu-kvm (1.2-7) unstable; urgency=low
 
   * cleanup snapshot support patches
index d3c2189e639a250ec9d1f8f0a3904d5d5658e8a3..748e907089ab3530c0d2b4d1cd040140a88bdbe5 100644 (file)
@@ -1,7 +1,7 @@
 Index: new/net.h
 ===================================================================
---- new.orig/net.h     2012-09-24 07:15:00.000000000 +0200
-+++ new/net.h  2012-09-24 07:15:16.000000000 +0200
+--- new.orig/net.h     2012-11-21 11:11:22.000000000 +0100
++++ new/net.h  2012-11-21 11:17:51.000000000 +0100
 @@ -161,8 +161,9 @@
  void netdev_add(QemuOpts *opts, Error **errp);
  int qmp_netdev_add(Monitor *mon, const QDict *qdict, QObject **ret);
@@ -14,23 +14,10 @@ Index: new/net.h
  #define DEFAULT_BRIDGE_HELPER CONFIG_QEMU_HELPERDIR "/qemu-bridge-helper"
  #define DEFAULT_BRIDGE_INTERFACE "br0"
  
-Index: new/configure
-===================================================================
---- new.orig/configure 2012-09-24 07:15:00.000000000 +0200
-+++ new/configure      2012-09-24 07:15:16.000000000 +0200
-@@ -195,7 +195,7 @@
- libdir="\${prefix}/lib"
- includedir="\${prefix}/include"
- sysconfdir="\${prefix}/etc"
--confsuffix="/qemu"
-+confsuffix="/kvm"
- slirp="yes"
- fmod_lib=""
- fmod_inc=""
 Index: new/net/tap.h
 ===================================================================
---- new.orig/net/tap.h 2012-09-24 07:15:00.000000000 +0200
-+++ new/net/tap.h      2012-09-24 07:15:16.000000000 +0200
+--- new.orig/net/tap.h 2012-11-21 11:11:22.000000000 +0100
++++ new/net/tap.h      2012-11-21 11:17:51.000000000 +0100
 @@ -29,8 +29,6 @@
  #include "qemu-common.h"
  #include "qapi-types.h"
@@ -38,5 +25,5 @@ Index: new/net/tap.h
 -#define DEFAULT_NETWORK_SCRIPT "/etc/qemu-ifup"
 -#define DEFAULT_NETWORK_DOWN_SCRIPT "/etc/qemu-ifdown"
  
- int net_init_tap(const NetClientOptions *opts, const char *name,
-                  NetClientState *peer);
+ int tap_open(char *ifname, int ifname_size, int *vnet_hdr, int vnet_hdr_required);
diff --git a/debian/patches/ahci-properly-reset-pxcmd.patch b/debian/patches/ahci-properly-reset-pxcmd.patch
deleted file mode 100644 (file)
index 8a02f48..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-While testing q35, I found that windows 7 (specifically, windows 7 ultimate
-with sp1 x64), wouldn't install because it can't find the cdrom or disk drive.
-The failure message is: 'A required cd/dvd device driver is missing. If you
-have a driver floppy disk, CD, DVD, or USB flash drive, please insert it now.'
-This can also be reproduced on piix by adding an ahci controller, and
-observing that windows 7 does not see any devices behind it.
-
-The problem is that when windows issues a HBA reset, qemu does not reset the
-individual ports' PxCMD register. Windows 7 then reads back the PxCMD register
-and presumably assumes that the ahci controller has already been initialized.
-Windows then never sets up the PxIE register to enable interrupts, and thus it
-never gets irqs back when it sends ata device inquiry commands.
-
-I believe this change brings qemu into ahci 1.3 specification compliance.
-
-Section 10.4.3 HBA Reset:
-
-"
-When GHC.HR is set to '1', GHC.AE, GHC.IE, the IS register, and all port
-register fields (except PxFB/PxFBU/PxCLB/PxCLBU) that are not HwInit in the
-HBA's register memory space are reset.
-"
-
-I've also re-tested Fedora 16 and 17 to verify that they continue to work with
-this change.
-
-Signed-off-by: Jason Baron <address@hidden>
----
- hw/ide/ahci.c |    1 +
- 1 files changed, 1 insertions(+), 0 deletions(-)
-
-Index: new/hw/ide/ahci.c
-===================================================================
---- new.orig/hw/ide/ahci.c     2012-09-24 07:15:28.000000000 +0200
-+++ new/hw/ide/ahci.c  2012-09-24 07:15:29.000000000 +0200
-@@ -1199,6 +1199,7 @@
-         pr->irq_stat = 0;
-         pr->irq_mask = 0;
-         pr->scr_ctl = 0;
-+        pr->cmd = 0;
-         ahci_reset_port(s, i);
-     }
- }
diff --git a/debian/patches/enable-kvm-by-default.patch b/debian/patches/enable-kvm-by-default.patch
new file mode 100644 (file)
index 0000000..61352d2
--- /dev/null
@@ -0,0 +1,101 @@
+Index: new/hw/pc_piix.c
+===================================================================
+--- new.orig/hw/pc_piix.c      2012-11-22 10:10:56.000000000 +0100
++++ new/hw/pc_piix.c   2012-11-22 10:16:29.000000000 +0100
+@@ -352,6 +352,8 @@
+ }
+ #endif
++#define KVM_MACHINE_OPTIONS "accel=kvm"
++
+ static QEMUMachine pc_machine_v1_3 = {
+     .name = "pc-1.3",
+     .alias = "pc",
+@@ -359,6 +361,7 @@
+     .init = pc_init_pci_1_3,
+     .max_cpus = 255,
+     .is_default = 1,
++    .default_machine_opts = KVM_MACHINE_OPTIONS,
+ };
+ #define PC_COMPAT_1_2 \
+@@ -393,6 +396,7 @@
+     .desc = "Standard PC",
+     .init = pc_init_pci,
+     .max_cpus = 255,
++    .default_machine_opts = KVM_MACHINE_OPTIONS,
+     .compat_props = (GlobalProperty[]) {
+         PC_COMPAT_1_2,
+         { /* end of list */ }
+@@ -436,6 +440,7 @@
+     .desc = "Standard PC",
+     .init = pc_init_pci,
+     .max_cpus = 255,
++    .default_machine_opts = KVM_MACHINE_OPTIONS,
+     .compat_props = (GlobalProperty[]) {
+         PC_COMPAT_1_1,
+         { /* end of list */ }
+@@ -471,6 +476,7 @@
+     .desc = "Standard PC",
+     .init = pc_init_pci,
+     .max_cpus = 255,
++    .default_machine_opts = KVM_MACHINE_OPTIONS,
+     .compat_props = (GlobalProperty[]) {
+         PC_COMPAT_1_0,
+         { /* end of list */ }
+@@ -486,6 +492,7 @@
+     .desc = "Standard PC",
+     .init = pc_init_pci,
+     .max_cpus = 255,
++    .default_machine_opts = KVM_MACHINE_OPTIONS,
+     .compat_props = (GlobalProperty[]) {
+         PC_COMPAT_0_15,
+         { /* end of list */ }
+@@ -518,6 +525,7 @@
+     .desc = "Standard PC",
+     .init = pc_init_pci,
+     .max_cpus = 255,
++    .default_machine_opts = KVM_MACHINE_OPTIONS,
+     .compat_props = (GlobalProperty[]) {
+         PC_COMPAT_0_14, 
+         {
+@@ -551,6 +559,7 @@
+     .desc = "Standard PC",
+     .init = pc_init_pci_no_kvmclock,
+     .max_cpus = 255,
++    .default_machine_opts = KVM_MACHINE_OPTIONS,
+     .compat_props = (GlobalProperty[]) {
+         PC_COMPAT_0_13,
+         {
+@@ -588,6 +597,7 @@
+     .desc = "Standard PC",
+     .init = pc_init_pci_no_kvmclock,
+     .max_cpus = 255,
++    .default_machine_opts = KVM_MACHINE_OPTIONS,
+     .compat_props = (GlobalProperty[]) {
+         PC_COMPAT_0_12,
+         {
+@@ -621,6 +631,7 @@
+     .desc = "Standard PC, qemu 0.11",
+     .init = pc_init_pci_no_kvmclock,
+     .max_cpus = 255,
++    .default_machine_opts = KVM_MACHINE_OPTIONS,
+     .compat_props = (GlobalProperty[]) {
+         PC_COMPAT_0_11,
+         {
+@@ -642,6 +653,7 @@
+     .desc = "Standard PC, qemu 0.10",
+     .init = pc_init_pci_no_kvmclock,
+     .max_cpus = 255,
++    .default_machine_opts = KVM_MACHINE_OPTIONS,
+     .compat_props = (GlobalProperty[]) {
+         PC_COMPAT_0_11,
+         {
+@@ -675,6 +687,7 @@
+     .desc = "ISA-only PC",
+     .init = pc_init_isa,
+     .max_cpus = 1,
++    .default_machine_opts = KVM_MACHINE_OPTIONS,
+     .compat_props = (GlobalProperty[]) {
+         {
+             .driver   = "pc-sysfw",
index 4d344a707dcdb6deed6bb83f4d428e9e8551f3b2..7e1799ef39ab6c2906185eda954b3bb3f2f3a3a3 100644 (file)
@@ -1,8 +1,8 @@
 Index: new/qemu-options.hx
 ===================================================================
---- new.orig/qemu-options.hx   2012-09-24 07:15:00.000000000 +0200
-+++ new/qemu-options.hx        2012-09-24 07:15:20.000000000 +0200
-@@ -102,6 +102,12 @@
+--- new.orig/qemu-options.hx   2012-11-21 11:11:22.000000000 +0100
++++ new/qemu-options.hx        2012-11-21 11:25:23.000000000 +0100
+@@ -103,6 +103,12 @@
  are split equally.
  ETEXI
  
@@ -17,8 +17,8 @@ Index: new/qemu-options.hx
  DEF("fdb", HAS_ARG, QEMU_OPTION_fdb, "", QEMU_ARCH_ALL)
 Index: new/vl.c
 ===================================================================
---- new.orig/vl.c      2012-09-24 07:15:00.000000000 +0200
-+++ new/vl.c   2012-09-24 07:15:20.000000000 +0200
+--- new.orig/vl.c      2012-11-21 11:11:22.000000000 +0100
++++ new/vl.c   2012-11-21 11:25:23.000000000 +0100
 @@ -154,6 +154,8 @@
  #endif
  #include "qtest.h"
@@ -29,14 +29,14 @@ Index: new/vl.c
  
  #include "qemu_socket.h"
 @@ -205,6 +207,7 @@
+ CharDriverState *virtcon_hds[MAX_VIRTIO_CONSOLES];
  int win2k_install_hack = 0;
- int usb_enabled = 0;
  int singlestep = 0;
 +int fairsched_id = 0;
  int smp_cpus = 1;
  int max_cpus = 0;
  int smp_cores = 1;
-@@ -2135,7 +2138,7 @@
+@@ -2275,7 +2278,7 @@
  }
  
  static int debugcon_parse(const char *devname)
@@ -45,7 +45,7 @@ Index: new/vl.c
      QemuOpts *opts;
  
      if (!qemu_chr_new("debugcon", devname, NULL)) {
-@@ -2345,6 +2348,9 @@
+@@ -2527,6 +2530,9 @@
  int main(int argc, char **argv, char **envp)
  {
      int i;
@@ -55,7 +55,7 @@ Index: new/vl.c
      int snapshot, linux_boot;
      const char *icount_option = NULL;
      const char *initrd_filename;
-@@ -3120,6 +3126,21 @@
+@@ -3306,6 +3312,21 @@
                      exit(1);
                  }
                  break;
@@ -77,7 +77,7 @@ Index: new/vl.c
            case QEMU_OPTION_vnc:
  #ifdef CONFIG_VNC
                  display_remote++;
-@@ -3191,8 +3212,8 @@
+@@ -3377,8 +3398,8 @@
                        }
                        p += 8;
                        os_set_proc_name(p);
@@ -88,7 +88,7 @@ Index: new/vl.c
                  break;
              case QEMU_OPTION_prom_env:
                  if (nb_prom_envs >= MAX_PROM_ENVS) {
-@@ -3552,6 +3573,39 @@
+@@ -3765,6 +3786,39 @@
          }
      }
  
@@ -131,7 +131,7 @@ Index: new/vl.c
 Index: new/vzsyscalls.h
 ===================================================================
 --- /dev/null  1970-01-01 00:00:00.000000000 +0000
-+++ new/vzsyscalls.h   2012-09-24 07:15:20.000000000 +0200
++++ new/vzsyscalls.h   2012-11-21 11:25:23.000000000 +0100
 @@ -0,0 +1,47 @@
 +/*
 + *  Copyright (C) 2000-2008, Parallels, Inc. All rights reserved.
index 172f1b35895078dff13bb68ff337a101f25ae5f6..7a6ad3bdfcbbb05d62172fa70c5df1520331a7ac 100644 (file)
@@ -1,8 +1,8 @@
 Index: new/qemu-img.c
 ===================================================================
---- new.orig/qemu-img.c        2012-09-24 07:15:00.000000000 +0200
-+++ new/qemu-img.c     2012-09-24 07:15:31.000000000 +0200
-@@ -1288,7 +1288,9 @@
+--- new.orig/qemu-img.c        2012-11-21 11:11:22.000000000 +0100
++++ new/qemu-img.c     2012-11-21 11:51:19.000000000 +0100
+@@ -1580,7 +1580,9 @@
              error_report("Could not delete snapshot '%s': %d (%s)",
                  snapshot_name, ret, strerror(-ret));
          }
index 3834e67e710cab2e902fbb2ad1fd3a84ee521419..07671026c195070018a7997bc01e3d0bda004bc9 100644 (file)
@@ -1,9 +1,9 @@
 Index: new/qapi-schema.json
 ===================================================================
---- new.orig/qapi-schema.json  2012-09-24 07:15:44.000000000 +0200
-+++ new/qapi-schema.json       2012-09-24 07:15:58.000000000 +0200
-@@ -358,6 +358,40 @@
-            '*total-time': 'int'} }
+--- new.orig/qapi-schema.json  2012-11-21 11:11:22.000000000 +0100
++++ new/qapi-schema.json       2012-11-21 12:44:30.000000000 +0100
+@@ -461,6 +461,40 @@
+            '*downtime': 'int'} }
  
  ##
 +# @SaveVMInfo
@@ -43,12 +43,10 @@ Index: new/qapi-schema.json
  # @query-migrate
  #
  # Returns information about current migration process.
-@@ -2493,3 +2527,12 @@
- # Since: 1.2.0
+@@ -2902,6 +2936,14 @@
  ##
  { 'command': 'query-target', 'returns': 'TargetInfo' }
-+
-+
 +{ 'command': 'savevm-start' 'data': { '*statefile': 'str' } }
 +
 +{ 'command': 'snapshot-drive', 'data': { 'device': 'str', 'name': 'str' } }
@@ -56,11 +54,15 @@ Index: new/qapi-schema.json
 +{ 'command': 'delete-drive-snapshot', 'data': { 'device': 'str', 'name': 'str' } }
 +
 +{ 'command': 'savevm-end' }
++
+ ##
+ # @QKeyCode:
+ #
 Index: new/qmp-commands.hx
 ===================================================================
---- new.orig/qmp-commands.hx   2012-09-24 07:15:44.000000000 +0200
-+++ new/qmp-commands.hx        2012-09-24 08:58:56.000000000 +0200
-@@ -2514,3 +2514,34 @@
+--- new.orig/qmp-commands.hx   2012-11-21 11:11:22.000000000 +0100
++++ new/qmp-commands.hx        2012-11-21 12:41:51.000000000 +0100
+@@ -2654,3 +2654,34 @@
          .args_type  = "",
          .mhandler.cmd_new = qmp_marshal_input_query_target,
      },
@@ -97,10 +99,10 @@ Index: new/qmp-commands.hx
 +
 Index: new/hmp.c
 ===================================================================
---- new.orig/hmp.c     2012-09-24 07:15:44.000000000 +0200
-+++ new/hmp.c  2012-09-24 07:15:58.000000000 +0200
-@@ -1102,3 +1102,60 @@
-     qmp_closefd(fdname, &errp);
+--- new.orig/hmp.c     2012-11-21 11:11:22.000000000 +0100
++++ new/hmp.c  2012-11-21 12:41:51.000000000 +0100
+@@ -1335,3 +1335,60 @@
+     qmp_nbd_server_stop(&errp);
      hmp_handle_error(mon, &errp);
  }
 +
@@ -162,8 +164,8 @@ Index: new/hmp.c
 +}
 Index: new/hmp.h
 ===================================================================
---- new.orig/hmp.h     2012-09-24 07:15:44.000000000 +0200
-+++ new/hmp.h  2012-09-24 07:15:58.000000000 +0200
+--- new.orig/hmp.h     2012-11-21 11:11:22.000000000 +0100
++++ new/hmp.h  2012-11-21 12:43:32.000000000 +0100
 @@ -25,6 +25,7 @@
  void hmp_info_uuid(Monitor *mon);
  void hmp_info_chardev(Monitor *mon);
@@ -172,7 +174,7 @@ Index: new/hmp.h
  void hmp_info_migrate(Monitor *mon);
  void hmp_info_migrate_capabilities(Monitor *mon);
  void hmp_info_migrate_cache_size(Monitor *mon);
-@@ -71,5 +72,9 @@
+@@ -75,6 +76,10 @@
  void hmp_netdev_del(Monitor *mon, const QDict *qdict);
  void hmp_getfd(Monitor *mon, const QDict *qdict);
  void hmp_closefd(Monitor *mon, const QDict *qdict);
@@ -180,13 +182,14 @@ Index: new/hmp.h
 +void hmp_snapshot_drive(Monitor *mon, const QDict *qdict);
 +void hmp_delete_drive_snapshot(Monitor *mon, const QDict *qdict);
 +void hmp_savevm_end(Monitor *mon, const QDict *qdict);
- #endif
+ void hmp_send_key(Monitor *mon, const QDict *qdict);
+ void hmp_screen_dump(Monitor *mon, const QDict *qdict);
+ void hmp_nbd_server_start(Monitor *mon, const QDict *qdict);
 Index: new/hmp-commands.hx
 ===================================================================
---- new.orig/hmp-commands.hx   2012-09-24 07:15:44.000000000 +0200
-+++ new/hmp-commands.hx        2012-09-24 07:15:58.000000000 +0200
-@@ -1468,6 +1468,8 @@
+--- new.orig/hmp-commands.hx   2012-11-21 11:11:22.000000000 +0100
++++ new/hmp-commands.hx        2012-11-21 12:41:51.000000000 +0100
+@@ -1562,6 +1562,8 @@
  show current migration capabilities
  @item info migrate_cache_size
  show current migration XBZRLE cache size
@@ -195,7 +198,7 @@ Index: new/hmp-commands.hx
  @item info balloon
  show balloon information
  @item info qtree
-@@ -1494,3 +1496,35 @@
+@@ -1581,3 +1583,35 @@
  STEXI
  @end table
  ETEXI
@@ -234,7 +237,7 @@ Index: new/hmp-commands.hx
 Index: new/savevm-async.c
 ===================================================================
 --- /dev/null  1970-01-01 00:00:00.000000000 +0000
-+++ new/savevm-async.c 2012-09-24 09:17:54.000000000 +0200
++++ new/savevm-async.c 2012-11-21 12:41:51.000000000 +0100
 @@ -0,0 +1,441 @@
 +#include "qemu-common.h"
 +#include "qerror.h"
@@ -679,10 +682,10 @@ Index: new/savevm-async.c
 +}
 Index: new/Makefile.objs
 ===================================================================
---- new.orig/Makefile.objs     2012-09-24 07:15:44.000000000 +0200
-+++ new/Makefile.objs  2012-09-24 07:15:58.000000000 +0200
-@@ -78,6 +78,7 @@
- common-obj-y += pflib.o
+--- new.orig/Makefile.objs     2012-11-21 11:11:22.000000000 +0100
++++ new/Makefile.objs  2012-11-21 12:41:51.000000000 +0100
+@@ -84,6 +84,7 @@
+ common-obj-y += block-migration.o iohandler.o
  common-obj-y += bitmap.o bitops.o
  common-obj-y += page_cache.o
 +common-obj-y += savevm-async.o
@@ -691,9 +694,9 @@ Index: new/Makefile.objs
  common-obj-$(CONFIG_WIN32) += version.o
 Index: new/sysemu.h
 ===================================================================
---- new.orig/sysemu.h  2012-09-24 07:15:44.000000000 +0200
-+++ new/sysemu.h       2012-09-24 07:15:58.000000000 +0200
-@@ -72,6 +72,7 @@
+--- new.orig/sysemu.h  2012-11-21 11:11:22.000000000 +0100
++++ new/sysemu.h       2012-11-21 12:41:51.000000000 +0100
+@@ -67,6 +67,7 @@
  
  void do_savevm(Monitor *mon, const QDict *qdict);
  int load_vmstate(const char *name);
@@ -703,9 +706,9 @@ Index: new/sysemu.h
  
 Index: new/qemu-options.hx
 ===================================================================
---- new.orig/qemu-options.hx   2012-09-24 07:15:51.000000000 +0200
-+++ new/qemu-options.hx        2012-09-24 07:15:58.000000000 +0200
-@@ -2477,6 +2477,19 @@
+--- new.orig/qemu-options.hx   2012-11-21 11:25:23.000000000 +0100
++++ new/qemu-options.hx        2012-11-21 12:41:51.000000000 +0100
+@@ -2575,6 +2575,19 @@
  Start right away with a saved state (@code{loadvm} in monitor)
  ETEXI
  
@@ -727,9 +730,9 @@ Index: new/qemu-options.hx
      "-daemonize      daemonize QEMU after initializing\n", QEMU_ARCH_ALL)
 Index: new/vl.c
 ===================================================================
---- new.orig/vl.c      2012-09-24 07:15:53.000000000 +0200
-+++ new/vl.c   2012-09-24 07:15:58.000000000 +0200
-@@ -2364,6 +2364,7 @@
+--- new.orig/vl.c      2012-11-21 11:26:06.000000000 +0100
++++ new/vl.c   2012-11-21 12:41:51.000000000 +0100
+@@ -2545,6 +2545,7 @@
      int optind;
      const char *optarg;
      const char *loadvm = NULL;
@@ -737,7 +740,7 @@ Index: new/vl.c
      QEMUMachine *machine;
      const char *cpu_model;
      const char *vga_model = "none";
-@@ -2998,6 +2999,9 @@
+@@ -3185,6 +3186,9 @@
            case QEMU_OPTION_loadvm:
                loadvm = optarg;
                break;
@@ -747,7 +750,7 @@ Index: new/vl.c
              case QEMU_OPTION_full_screen:
                  full_screen = 1;
                  break;
-@@ -3821,6 +3825,10 @@
+@@ -4038,6 +4042,10 @@
          if (load_vmstate(loadvm) < 0) {
              autostart = 0;
          }
@@ -760,9 +763,9 @@ Index: new/vl.c
      if (incoming) {
 Index: new/monitor.c
 ===================================================================
---- new.orig/monitor.c 2012-09-24 09:21:18.000000000 +0200
-+++ new/monitor.c      2012-09-24 09:21:32.000000000 +0200
-@@ -2952,6 +2952,13 @@
+--- new.orig/monitor.c 2012-11-21 11:11:22.000000000 +0100
++++ new/monitor.c      2012-11-21 12:41:51.000000000 +0100
+@@ -2701,6 +2701,13 @@
          .mhandler.info = hmp_info_migrate_cache_size,
      },
      {
index 3b315ff98e50e6f908c533cab0e00197f24630bc..8a659e2f8a9ef41ba0c883974840b8fe2aa07955 100644 (file)
@@ -1,8 +1,8 @@
 Index: new/ui/vnc.c
 ===================================================================
---- new.orig/ui/vnc.c  2012-09-24 07:15:00.000000000 +0200
-+++ new/ui/vnc.c       2012-09-24 07:15:22.000000000 +0200
-@@ -1496,6 +1496,10 @@
+--- new.orig/ui/vnc.c  2012-11-21 11:11:22.000000000 +0100
++++ new/ui/vnc.c       2012-11-21 11:25:33.000000000 +0100
+@@ -1497,6 +1497,10 @@
  
  static void do_key_event(VncState *vs, int down, int keycode, int sym)
  {
@@ -13,7 +13,7 @@ Index: new/ui/vnc.c
      /* QEMU console switch */
      switch(keycode) {
      case 0x2a:                          /* Left Shift */
-@@ -1566,12 +1570,42 @@
+@@ -1567,12 +1571,42 @@
      }
  
      if (is_graphic_console()) {
@@ -56,7 +56,7 @@ Index: new/ui/vnc.c
      } else {
          bool numlock = vs->modifiers_state[0x45];
          bool control = (vs->modifiers_state[0x1d] ||
-@@ -1708,7 +1742,8 @@
+@@ -1709,7 +1743,8 @@
          lsym = lsym - 'A' + 'a';
      }
  
index fa592dfe272f3f276ea27b36a2d7884e1e2db636..33e6357352a90fe1677fb4dd370e3240ff4d91fd 100644 (file)
@@ -1,8 +1,8 @@
 Index: new/block.c
 ===================================================================
---- new.orig/block.c   2012-09-24 07:15:00.000000000 +0200
-+++ new/block.c        2012-09-24 07:15:32.000000000 +0200
-@@ -2724,6 +2724,28 @@
+--- new.orig/block.c   2012-11-21 11:11:22.000000000 +0100
++++ new/block.c        2012-11-21 11:51:35.000000000 +0100
+@@ -3137,6 +3137,28 @@
      return -ENOTSUP;
  }
  
@@ -33,9 +33,9 @@ Index: new/block.c
  {
 Index: new/block.h
 ===================================================================
---- new.orig/block.h   2012-09-24 07:15:00.000000000 +0200
-+++ new/block.h        2012-09-24 07:15:32.000000000 +0200
-@@ -302,6 +302,8 @@
+--- new.orig/block.h   2012-11-21 11:11:22.000000000 +0100
++++ new/block.h        2012-11-21 11:51:35.000000000 +0100
+@@ -327,6 +327,8 @@
  int bdrv_snapshot_delete(BlockDriverState *bs, const char *snapshot_id);
  int bdrv_snapshot_list(BlockDriverState *bs,
                         QEMUSnapshotInfo **psn_info);
@@ -46,9 +46,9 @@ Index: new/block.h
  char *bdrv_snapshot_dump(char *buf, int buf_size, QEMUSnapshotInfo *sn);
 Index: new/savevm.c
 ===================================================================
---- new.orig/savevm.c  2012-09-24 07:15:00.000000000 +0200
-+++ new/savevm.c       2012-09-24 07:15:32.000000000 +0200
-@@ -2015,28 +2015,6 @@
+--- new.orig/savevm.c  2012-11-21 11:11:22.000000000 +0100
++++ new/savevm.c       2012-11-21 11:51:35.000000000 +0100
+@@ -2061,28 +2061,6 @@
      return ret;
  }
  
index 341912e159c578329e329388be86acde94f16c83..241cd79e9303682167e39441100ba8f94e24a895 100644 (file)
@@ -1,7 +1,7 @@
 Index: new/ui/vnc.c
 ===================================================================
---- new.orig/ui/vnc.c  2012-09-24 07:15:22.000000000 +0200
-+++ new/ui/vnc.c       2012-09-24 07:15:24.000000000 +0200
+--- new.orig/ui/vnc.c  2012-11-21 11:25:33.000000000 +0100
++++ new/ui/vnc.c       2012-11-21 11:32:25.000000000 +0100
 @@ -43,6 +43,125 @@
  #include "vnc_keysym.h"
  #include "d3des.h"
@@ -128,16 +128,7 @@ Index: new/ui/vnc.c
  static VncDisplay *vnc_display; /* needed for info vnc */
  static DisplayChangeListener *dcl;
  
-@@ -1891,7 +2010,7 @@
- static void set_pixel_conversion(VncState *vs)
- {
-     if ((vs->clientds.flags & QEMU_BIG_ENDIAN_FLAG) ==
--        (vs->ds->surface->flags & QEMU_BIG_ENDIAN_FLAG) && 
-+        (vs->ds->surface->flags & QEMU_BIG_ENDIAN_FLAG) &&
-         !memcmp(&(vs->clientds.pf), &(vs->ds->surface->pf), sizeof(PixelFormat))) {
-         vs->write_pixels = vnc_write_pixels_copy;
-         vnc_hextile_set_pixel_conversion(vs, 0);
-@@ -1980,7 +2099,7 @@
+@@ -1982,7 +2101,7 @@
          vnc_write_u8(vs, VNC_MSG_SERVER_FRAMEBUFFER_UPDATE);
          vnc_write_u8(vs, 0);
          vnc_write_u16(vs, 1); /* number of rects */
@@ -146,7 +137,7 @@ Index: new/ui/vnc.c
                                 ds_get_height(vs->ds), VNC_ENCODING_WMVi);
          pixel_format_message(vs);
          vnc_unlock_output(vs);
-@@ -2875,7 +2994,7 @@
+@@ -2892,7 +3011,7 @@
  char *vnc_display_local_addr(DisplayState *ds)
  {
      VncDisplay *vs = ds ? (VncDisplay *)ds->opaque : vnc_display;
@@ -155,7 +146,7 @@ Index: new/ui/vnc.c
      return vnc_socket_local_addr("%s:%s", vs->lsock);
  }
  
-@@ -2934,6 +3053,7 @@
+@@ -2950,6 +3069,7 @@
              tls = 1; /* Require TLS */
          } else if (strncmp(options, "x509", 4) == 0) {
              char *start, *end;
@@ -163,24 +154,20 @@ Index: new/ui/vnc.c
              x509 = 1; /* Require x509 certificates */
              if (strncmp(options, "x509verify", 10) == 0)
                  vs->tls.x509verify = 1; /* ...and verify client certs */
-@@ -2956,10 +3076,12 @@
+@@ -2970,8 +3090,10 @@
                  }
                  g_free(path);
              } else {
--                fprintf(stderr, "No certificate path provided\n");
--                g_free(vs->display);
--                vs->display = NULL;
--                return -1;
+-                error_setg(errp, "No certificate path provided");
+-                goto fail;
 +              if (pve_tls_set_x509_creds_dir(vs) < 0) {
-+                      fprintf(stderr, "No certificate path provided\n");
-+                      g_free(vs->display);
-+                      vs->display = NULL;
-+                      return -1;
-+              }
++                    error_setg(errp, "No certificate path provided");
++                    goto fail;
++              } 
              }
  #endif
  #if defined(CONFIG_VNC_TLS) || defined(CONFIG_VNC_SASL)
-@@ -3025,10 +3147,10 @@
+@@ -3035,10 +3157,10 @@
              vs->auth = VNC_AUTH_VENCRYPT;
              if (x509) {
                  VNC_DEBUG("Initializing VNC server with x509 password auth\n");
@@ -195,8 +182,8 @@ Index: new/ui/vnc.c
  #endif /* CONFIG_VNC_TLS */
 Index: new/ui/vnc-auth-vencrypt.c
 ===================================================================
---- new.orig/ui/vnc-auth-vencrypt.c    2012-09-24 07:15:00.000000000 +0200
-+++ new/ui/vnc-auth-vencrypt.c 2012-09-24 07:15:24.000000000 +0200
+--- new.orig/ui/vnc-auth-vencrypt.c    2012-11-21 11:11:22.000000000 +0100
++++ new/ui/vnc-auth-vencrypt.c 2012-11-21 11:26:06.000000000 +0100
 @@ -25,7 +25,107 @@
   */
  
@@ -320,9 +307,9 @@ Index: new/ui/vnc-auth-vencrypt.c
         VNC_DEBUG("Start TLS auth VNC\n");
 Index: new/ui/vnc.h
 ===================================================================
---- new.orig/ui/vnc.h  2012-09-24 07:15:00.000000000 +0200
-+++ new/ui/vnc.h       2012-09-24 07:15:24.000000000 +0200
-@@ -263,6 +263,8 @@
+--- new.orig/ui/vnc.h  2012-11-21 11:11:22.000000000 +0100
++++ new/ui/vnc.h       2012-11-21 11:26:06.000000000 +0100
+@@ -264,6 +264,8 @@
      char challenge[VNC_AUTH_CHALLENGE_SIZE];
  #ifdef CONFIG_VNC_TLS
      int subauth; /* Used by VeNCrypt */
@@ -331,7 +318,7 @@ Index: new/ui/vnc.h
      VncStateTLS tls;
  #endif
  #ifdef CONFIG_VNC_SASL
-@@ -554,4 +556,6 @@
+@@ -560,4 +562,6 @@
  int vnc_zywrle_send_framebuffer_update(VncState *vs, int x, int y, int w, int h);
  void vnc_zrle_clear(VncState *vs);
  
@@ -340,8 +327,8 @@ Index: new/ui/vnc.h
  #endif /* __QEMU_VNC_H */
 Index: new/ui/vnc-tls.c
 ===================================================================
---- new.orig/ui/vnc-tls.c      2012-09-24 07:15:00.000000000 +0200
-+++ new/ui/vnc-tls.c   2012-09-24 07:15:24.000000000 +0200
+--- new.orig/ui/vnc-tls.c      2012-11-21 11:11:22.000000000 +0100
++++ new/ui/vnc-tls.c   2012-11-21 11:26:06.000000000 +0100
 @@ -302,6 +302,14 @@
  
  static int vnc_set_gnutls_priority(gnutls_session_t s, int x509)
@@ -396,8 +383,8 @@ Index: new/ui/vnc-tls.c
                                 const char *certdir)
 Index: new/ui/vnc-tls.h
 ===================================================================
---- new.orig/ui/vnc-tls.h      2012-09-24 07:15:00.000000000 +0200
-+++ new/ui/vnc-tls.h   2012-09-24 07:15:24.000000000 +0200
+--- new.orig/ui/vnc-tls.h      2012-11-21 11:11:22.000000000 +0100
++++ new/ui/vnc-tls.h   2012-11-21 11:26:06.000000000 +0100
 @@ -68,6 +68,8 @@
  
  int vnc_tls_validate_certificate(VncState *vs);
@@ -409,9 +396,9 @@ Index: new/ui/vnc-tls.h
  
 Index: new/vl.c
 ===================================================================
---- new.orig/vl.c      2012-09-24 07:15:20.000000000 +0200
-+++ new/vl.c   2012-09-24 07:15:24.000000000 +0200
-@@ -3133,6 +3133,7 @@
+--- new.orig/vl.c      2012-11-21 11:25:23.000000000 +0100
++++ new/vl.c   2012-11-21 11:26:06.000000000 +0100
+@@ -3319,6 +3319,7 @@
                    fprintf(stderr, "Invalid ID\n");
                    exit(1);
                }
@@ -421,13 +408,13 @@ Index: new/vl.c
                  cpuunits = atoi(optarg);
 Index: new/console.h
 ===================================================================
---- new.orig/console.h 2012-09-24 07:15:00.000000000 +0200
-+++ new/console.h      2012-09-24 07:15:24.000000000 +0200
-@@ -374,6 +374,7 @@
+--- new.orig/console.h 2012-11-21 11:11:22.000000000 +0100
++++ new/console.h      2012-11-21 11:26:06.000000000 +0100
+@@ -448,6 +448,7 @@
  void cocoa_display_init(DisplayState *ds, int full_screen);
  
  /* vnc.c */
 +void pve_auth_setup(int vmid);
  void vnc_display_init(DisplayState *ds);
- void vnc_display_close(DisplayState *ds);
int vnc_display_open(DisplayState *ds, const char *display);
+ void vnc_display_open(DisplayState *ds, const char *display, Error **errp);
void vnc_display_add_client(DisplayState *ds, int csock, int skipauth);
index b9725b55efbf83a4ea6a45aecd028b1e57ce5e3c..6bd1d434984b0019c7fcbb95907a27d02050b9bf 100644 (file)
@@ -9,11 +9,11 @@ Signed-off-by: Alexandre Derumier <aderumier@odiso.com>
  qemu-img.c |   36 +++++++++++++++++++++---------------
  1 file changed, 21 insertions(+), 15 deletions(-)
 
-diff --git a/qemu-img.c b/qemu-img.c
-index b41e670..d399ccd 100644
---- a/qemu-img.c
-+++ b/qemu-img.c
-@@ -654,7 +654,7 @@ static int compare_sectors(const uint8_t *buf1, const uint8_t *buf2, int n,
+Index: new/qemu-img.c
+===================================================================
+--- new.orig/qemu-img.c        2012-11-21 11:51:19.000000000 +0100
++++ new/qemu-img.c     2012-11-21 12:45:10.000000000 +0100
+@@ -660,7 +660,7 @@
  
  static int img_convert(int argc, char **argv)
  {
@@ -22,7 +22,7 @@ index b41e670..d399ccd 100644
      int progress = 0, flags;
      const char *fmt, *out_fmt, *cache, *out_baseimg, *out_filename;
      BlockDriver *drv, *proto_drv;
-@@ -676,8 +676,9 @@ static int img_convert(int argc, char **argv)
+@@ -682,8 +682,9 @@
      cache = "unsafe";
      out_baseimg = NULL;
      compress = 0;
@@ -33,7 +33,7 @@ index b41e670..d399ccd 100644
          if (c == -1) {
              break;
          }
-@@ -698,6 +699,9 @@ static int img_convert(int argc, char **argv)
+@@ -704,6 +705,9 @@
          case 'c':
              compress = 1;
              break;
@@ -43,7 +43,7 @@ index b41e670..d399ccd 100644
          case 'e':
              error_report("option -e is deprecated, please use \'-o "
                    "encryption\' instead!");
-@@ -858,20 +862,22 @@ static int img_convert(int argc, char **argv)
+@@ -864,20 +868,22 @@
          }
      }
  
@@ -79,6 +79,3 @@ index b41e670..d399ccd 100644
      }
  
      flags = BDRV_O_RDWR;
--- 
-1.7.10.4
-
index c94991027059b3434fa5582d96b495d9d258d97e..359738d1220d1eb6b799deca8a9f3f7af62562c9 100644 (file)
 Index: new/savevm-async.c
 ===================================================================
---- new.orig/savevm-async.c    2012-09-24 07:59:38.000000000 +0200
-+++ new/savevm-async.c 2012-09-24 08:03:38.000000000 +0200
-@@ -151,6 +151,8 @@
+--- new.orig/savevm-async.c    2012-11-22 10:44:32.000000000 +0100
++++ new/savevm-async.c 2012-11-22 12:15:20.000000000 +0100
+@@ -7,7 +7,7 @@
+ #include "buffered_file.h"
+ #include "migration.h"
  
- static void block_state_put_ready(void *opaque)
+-//#define DEBUG_SAVEVM_STATE
++/* #define DEBUG_SAVEVM_STATE */
+ #ifdef DEBUG_SAVEVM_STATE
+ #define DPRINTF(fmt, ...) \
+@@ -86,11 +86,11 @@
+     }
+     if (snap_state.bs) {
+-        // try to truncate, but ignore errors (will fail on block devices).
+-        // note: bdrv_read() need whole blocks, so we round up
++        /* try to truncate, but ignore errors (will fail on block devices).
++         * note: bdrv_read() need whole blocks, so we round up
++         */
+         size_t size = (snap_state.bs_pos + BDRV_SECTOR_SIZE) & BDRV_SECTOR_MASK;
+         bdrv_truncate(snap_state.bs, size);
+-
+         bdrv_delete(snap_state.bs);
+         snap_state.bs = NULL;
+     }
+@@ -137,11 +137,13 @@
+     return bdrv_flush(snap_state.bs);
+ }
+-static ssize_t block_state_put_buffer(void *opaque, const void *buf,
+-                                      size_t size)
++static int block_state_put_buffer(void *opaque, const uint8_t *buf,
++                                  int64_t pos, int size)
  {
-+    uint64_t remaining;
-+    int64_t maxlen;
      int ret;
  
-     if (snap_state.state != SAVE_STATE_ACTIVE) {
-@@ -158,16 +160,25 @@
-         return;
++    assert(pos == snap_state.bs_pos);
++
+     if ((ret = bdrv_pwrite(snap_state.bs, snap_state.bs_pos, buf, size)) > 0) {
+         snap_state.bs_pos += ret;
      }
+@@ -149,50 +151,74 @@
+     return ret;
+ }
+-static void block_state_put_ready(void *opaque)
++static void process_savevm_co(void *opaque)
+ {
+     int ret;
++    uint64_t remaining;
++    int64_t maxlen;
++    MigrationParams params = {
++        .blk = 0,
++        .shared = 0
++    };
+-    if (snap_state.state != SAVE_STATE_ACTIVE) {
+-        save_snapshot_error("put_ready returning because of non-active state");
+-        return;
+-    }
++    snap_state.state = SAVE_STATE_ACTIVE;
  
 -    if (!runstate_check(RUN_STATE_SAVE_VM)) {
 -        save_snapshot_error("put_ready returning because of wrong run state");
--        return;
-+    ret = qemu_savevm_state_iterate(snap_state.file);
-+    remaining = ram_bytes_remaining();
-+
-+    // stop if we get to the end of available space,
-+    // or if remaining is just a few MB
-+    maxlen = bdrv_getlength(snap_state.bs) - 30*1024*1024;
-+    if ((remaining < 100000) || ((snap_state.bs_pos + remaining) >= maxlen)) {
-+        if (runstate_is_running()) {
-+            vm_stop(RUN_STATE_SAVE_VM);
-+        }
++    ret = qemu_savevm_state_begin(snap_state.file, &params);
++    if (ret < 0) {
++        save_snapshot_error("qemu_savevm_state_begin failed");
+         return;
      }
  
 -    ret = qemu_savevm_state_iterate(snap_state.file);
-     if (ret < 0) {
-         save_snapshot_error("qemu_savevm_state_iterate error %d", ret);
-         return;
-     } else if (ret == 1) {
-+        if (runstate_is_running()) {
-+            vm_stop(RUN_STATE_SAVE_VM);
+-    if (ret < 0) {
+-        save_snapshot_error("qemu_savevm_state_iterate error %d", ret);
+-        return;
+-    } else if (ret == 1) {
+-        DPRINTF("savevm inerate finished\n");
+-        if ((ret = qemu_savevm_state_complete(snap_state.file)) < 0) {
+-            save_snapshot_error("qemu_savevm_state_complete error %d", ret);
+-            return;
+-        } else {
+-            DPRINTF("save complete\n");
+-            save_snapshot_completed();
++    while (snap_state.state == SAVE_STATE_ACTIVE) {
++
++        ret = qemu_savevm_state_iterate(snap_state.file);
++        remaining = ram_bytes_remaining();
++
++        DPRINTF("savevm inerate %zd %d\n", remaining, ret);
++
++        if (ret < 0) {
++            save_snapshot_error("qemu_savevm_state_iterate error %d", ret);
+             return;
+         }
++
++        /* stop the VM if we get to the end of available space,
++         * or if remaining is just a few MB
++         */
++        maxlen = bdrv_getlength(snap_state.bs) - 30*1024*1024;
++        if ((remaining < 100000) ||
++            ((snap_state.bs_pos + remaining) >= maxlen)) {
++            if (runstate_is_running()) {
++                vm_stop(RUN_STATE_SAVE_VM);
++            }
 +        }
-         DPRINTF("savevm inerate finished\n");
-         if ((ret = qemu_savevm_state_complete(snap_state.file)) < 0) {
-             save_snapshot_error("qemu_savevm_state_complete error %d", ret);
-@@ -211,10 +222,8 @@
++
++        if (ret == 1) { /* finished */
++            if (runstate_is_running()) {
++                vm_stop(RUN_STATE_SAVE_VM);
++            }
++            DPRINTF("savevm inerate finished\n");
++            if ((ret = qemu_savevm_state_complete(snap_state.file)) < 0) {
++                save_snapshot_error("qemu_savevm_state_complete error %d", ret);
++                return;
++            } else {
++                DPRINTF("save complete\n");
++                save_snapshot_completed();
++                return;
++            }
++        }
+     }
+ }
+-static void block_state_wait_for_unfreeze(void *opaque)
+-{
+-    /* do nothing here - should not be called */
+-}
++static const QEMUFileOps block_file_ops = {
++    .put_buffer =     block_state_put_buffer,
++    .close =          block_state_close,
++};
++
+ void qmp_savevm_start(bool has_statefile, const char *statefile, Error **errp)
+ {
+     BlockDriver *drv = NULL;
+     int bdrv_oflags = BDRV_O_CACHE_WB | BDRV_O_RDWR;
+-    MigrationParams params = {
+-        .blk = 0,
+-        .shared = 0
+-    };
+     int ret;
+     if (snap_state.state != SAVE_STATE_DONE) {
+@@ -211,10 +237,8 @@
          snap_state.error = NULL;
      }
  
@@ -53,3 +156,64 @@ Index: new/savevm-async.c
          snap_state.state = SAVE_STATE_COMPLETED;
          return;
      }
+@@ -231,27 +255,15 @@
+         goto restart;
+     }
+-    snap_state.file = qemu_fopen_ops_buffered(&snap_state, 1000000000,
+-                                              block_state_put_buffer,
+-                                              block_state_put_ready,
+-                                              block_state_wait_for_unfreeze,
+-                                              block_state_close);
++    snap_state.file = qemu_fopen_ops(&snap_state, &block_file_ops);
+     if (!snap_state.file) {
+         error_set(errp, QERR_OPEN_FILE_FAILED, statefile);
+         goto restart;
+     }
+-    snap_state.state = SAVE_STATE_ACTIVE;
+-
+-    ret = qemu_savevm_state_begin(snap_state.file, &params);
+-    if (ret < 0) {
+-        error_set(errp, ERROR_CLASS_GENERIC_ERROR,
+-                  "qemu_savevm_state_begin failed\n");
+-        goto restart;
+-    }
+-
+-    block_state_put_ready(&snap_state);
++    Coroutine *co = qemu_coroutine_create(process_savevm_co);
++    qemu_coroutine_enter(co, NULL);
+     return;
+@@ -384,7 +396,8 @@
+     }
+ }
+-static int loadstate_get_buffer(void *opaque, uint8_t *buf, int64_t pos, int size)
++static int loadstate_get_buffer(void *opaque, uint8_t *buf, int64_t pos,
++                                int size)
+ {
+     BlockDriverState *bs = (BlockDriverState *)opaque;
+     int64_t maxlen = bdrv_getlength(bs);
+@@ -400,6 +413,10 @@
+     return bdrv_pread(bs, pos, buf, size);
+ }
++static const QEMUFileOps loadstate_file_ops = {
++    .get_buffer = loadstate_get_buffer,
++};
++
+ int load_state_from_blockdev(const char *filename)
+ {
+     BlockDriverState *bs = NULL;
+@@ -415,7 +432,7 @@
+     }
+     /* restore the VM state */
+-    f = qemu_fopen_ops(bs, NULL, loadstate_get_buffer, NULL, NULL, NULL, NULL);
++    f = qemu_fopen_ops(bs, &loadstate_file_ops);
+     if (!f) {
+         error_report("Could not open VM state file");
+         ret = -EINVAL;
index 5768d6cc8f7af76d2f7d95a1eab271b3856f42b8..ea76f0cab9312a5e4bedc0e1c0e47af0cf677bb1 100644 (file)
@@ -4,14 +4,12 @@ fairsched.diff
 keymap.diff
 set-max-nics.patch
 pve-auth.patch
-update-cpus-x86_64.conf-to-rhel6.2-version.patch
 vencrypt-auth-plain.patch
 ahci-add_migration-support.patch
-ahci-properly-reset-pxcmd.patch
-sheepdog-fix-savevm-loadvm.patch
 fix-qemu-img-snapshot-removal.patch
 move-bdrv-snapshot-find.patch
 internal-snapshot-async.patch
 savevm-live.patch
 stream-fix-ratelimit_set_speed.patch
 qemu-img-convert-skipcreate-option.patch
+enable-kvm-by-default.patch
diff --git a/debian/patches/sheepdog-fix-savevm-loadvm.patch b/debian/patches/sheepdog-fix-savevm-loadvm.patch
deleted file mode 100644 (file)
index 3877924..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-From 1f7a48de4467f31afc51169122453318efdb0f33 Mon Sep 17 00:00:00 2001
-From: MORITA Kazutaka <morita.kazutaka@lab.ntt.co.jp>
-Date: Thu, 30 Aug 2012 03:39:45 +0900
-Subject: [PATCH] sheepdog: fix savevm and loadvm
-
-This patch sets data to be sent to Sheepdog correctly and fixes savevm
-and loadvm operations on a Sheepdog image.
-
-Signed-off-by: MORITA Kazutaka <morita.kazutaka@lab.ntt.co.jp>
-Signed-off-by: Kevin Wolf <kwolf@redhat.com>
----
- block/sheepdog.c |    3 ++-
- 1 files changed, 2 insertions(+), 1 deletions(-)
-
-Index: new/block/sheepdog.c
-===================================================================
---- new.orig/block/sheepdog.c  2012-09-24 07:15:00.000000000 +0200
-+++ new/block/sheepdog.c       2012-09-24 07:15:30.000000000 +0200
-@@ -1986,7 +1986,7 @@
-         vdi_index = pos / SD_DATA_OBJ_SIZE;
-         offset = pos % SD_DATA_OBJ_SIZE;
--        data_len = MIN(remaining, SD_DATA_OBJ_SIZE);
-+        data_len = MIN(remaining, SD_DATA_OBJ_SIZE - offset);
-         vmstate_oid = vid_to_vmstate_oid(s->inode.vdi_id, vdi_index);
-@@ -2007,6 +2007,7 @@
-         }
-         pos += data_len;
-+        data += data_len;
-         remaining -= data_len;
-     }
-     ret = size;
diff --git a/debian/patches/update-cpus-x86_64.conf-to-rhel6.2-version.patch b/debian/patches/update-cpus-x86_64.conf-to-rhel6.2-version.patch
deleted file mode 100644 (file)
index cad6b65..0000000
+++ /dev/null
@@ -1,83 +0,0 @@
-From 861cf626eca5abb2fe7bc3be719acbf7086b94bb Mon Sep 17 00:00:00 2001
-From: Derumier Alexandre <aderumier@odiso.com>
-Date: Thu, 1 Mar 2012 17:00:30 +0100
-Subject: [PATCH] update target to rhel 6.2 version
-
-
-Signed-off-by: Derumier Alexandre <aderumier@odiso.com>
----
- sysconfigs/target/cpus-x86_64.conf |   36 ++++++++++++++++++++++++++++++---
- 1 files changed, 32 insertions(+), 4 deletions(-)
-
-Index: new/sysconfigs/target/cpus-x86_64.conf
-===================================================================
---- new.orig/sysconfigs/target/cpus-x86_64.conf        2012-09-24 07:15:00.000000000 +0200
-+++ new/sysconfigs/target/cpus-x86_64.conf     2012-09-24 07:15:25.000000000 +0200
-@@ -1,11 +1,39 @@
- # x86 CPU MODELS
- [cpudef]
-+   name = "cpu64-rhel6"
-+   level = "4"
-+   vendor = "AuthenticAMD"
-+   family = "6"
-+   model = "13"
-+   stepping = "3"
-+   feature_edx = "sse2 sse fxsr mmx clflush pse36 pat cmov mca pge mtrr sep apic cx8 mce pae msr tsc pse de fpu"
-+   feature_ecx = "cx16 sse3 x2apic"
-+   extfeature_edx = "lm fxsr mmx nx pat cmov pge syscall apic cx8 mce pae msr tsc pse de fpu"
-+   extfeature_ecx = "sse4a abm svm lahf_lm"
-+   xlevel = "0x8000000A"
-+   model_id = "QEMU Virtual CPU version (cpu64-rhel6)"
-+
-+[cpudef]
-+   name = "cpu64-rhel5"
-+   level = "4"
-+   vendor = "AuthenticAMD"
-+   family = "6"
-+   model = "6"
-+   stepping = "3"
-+   feature_edx = "sse2 sse fxsr mmx clflush pse36 pat cmov mca pge mtrr sep apic cx8 mce pae msr tsc pse de fpu"
-+   feature_ecx = "sse3"
-+   extfeature_edx = "3dnow 3dnowext lm fxsr mmx nx pat cmov pge syscall apic cx8 mce pae msr tsc pse de fpu"
-+   extfeature_ecx = "svm"
-+   xlevel = "0x8000000A"
-+   model_id = "QEMU Virtual CPU version (cpu64-rhel5)"
-+
-+[cpudef]
-    name = "Conroe"
-    level = "2"
-    vendor = "GenuineIntel"
-    family = "6"
--   model = "2"
-+   model = "15"
-    stepping = "3"
-    feature_edx = "sse2 sse fxsr mmx clflush pse36 pat cmov mca pge mtrr sep apic cx8 mce pae msr tsc pse de fpu"
-    feature_ecx = "ssse3 sse3"
-@@ -19,7 +47,7 @@
-    level = "2"
-    vendor = "GenuineIntel"
-    family = "6"
--   model = "2"
-+   model = "23"
-    stepping = "3"
-    feature_edx = "sse2 sse fxsr mmx clflush pse36 pat cmov mca pge mtrr sep apic cx8 mce pae msr tsc pse de fpu"
-    feature_ecx = "sse4.1 cx16 ssse3 sse3"
-@@ -33,7 +61,7 @@
-    level = "2"
-    vendor = "GenuineIntel"
-    family = "6"
--   model = "2"
-+   model = "26"
-    stepping = "3"
-    feature_edx = "sse2 sse fxsr mmx clflush pse36 pat cmov mca pge mtrr sep apic cx8 mce pae msr tsc pse de fpu"
-    feature_ecx = "popcnt sse4.2 sse4.1 cx16 ssse3 sse3"
-@@ -44,7 +72,7 @@
- [cpudef]
-    name = "Westmere"
--   level = "11"
-+   level = "2"
-    vendor = "GenuineIntel"
-    family = "6"
-    model = "44"
index d5d132d0c73fa572de8929c7975db781704558d5..dfcb5032db28e0f0754b34a6c56bdc154df11bbb 100755 (executable)
@@ -33,7 +33,7 @@ endif
 config.status: configure
        dh_testdir
        # Add here commands to configure the package.
-       ./configure --prefix=/usr --datadir=/usr/share --docdir=/usr/share/doc/pve-qemu-kvm --sysconfdir=/etc --disable-xen --enable-vnc-tls --enable-sdl --enable-uuid --enable-linux-aio --enable-rbd --enable-libiscsi --audio-drv-list="alsa"
+       ./configure --with-confsuffix="/kvm" --target-list=x86_64-softmmu --prefix=/usr --datadir=/usr/share --docdir=/usr/share/doc/pve-qemu-kvm --sysconfdir=/etc --disable-xen --enable-vnc-tls --enable-sdl --enable-uuid --enable-linux-aio --enable-rbd --enable-libiscsi --audio-drv-list="alsa"
 
 build: patch build-stamp
 
@@ -50,7 +50,7 @@ build-stamp:  config.status
 clean: unpatch
        dh_testdir
        dh_testroot
-       rm -f build-stamp 
+       rm -f build-stamp
 
        # Add here commands to clean up after the build process.
        -$(MAKE) distclean
@@ -62,12 +62,12 @@ ifneq "$(wildcard /usr/share/misc/config.guess)" ""
 endif
 
 
-       dh_clean 
+       dh_clean
 
 install: build
        dh_testdir
        dh_testroot
-       dh_clean -k 
+       dh_clean -k
        dh_installdirs
 
        # Add here commands to install the package into debian/pve-kvm.
@@ -82,7 +82,7 @@ install: build
        install -D -m 0755 $(CURDIR)/debian/kvm-ifup $(destdir)/etc/kvm/kvm-ifup
        install -D -m 0755 $(CURDIR)/debian/kvm-ifdown $(destdir)/etc/kvm/kvm-ifdown
 
-       # do not install empty file (now in /usr/share/kvm/cpus-x86_64.conf)    
+       # do not install empty file (now in /usr/share/kvm/cpus-x86_64.conf)
        rm $(destdir)/etc/kvm/target-x86_64.conf
 
        # we do not need openbios files (sparc/ppc)
@@ -112,12 +112,12 @@ binary-indep: build install
 binary-arch: build install
        dh_testdir
        dh_testroot
-       dh_installchangelogs 
+       dh_installchangelogs
        dh_installdocs
        dh_installexamples
 #      dh_install
 #      dh_installmenu
-#      dh_installdebconf       
+#      dh_installdebconf
 #      dh_installlogrotate
 #      dh_installemacsen
 #      dh_installpam
@@ -140,4 +140,4 @@ binary-arch: build install
        dh_builddeb
 
 binary: binary-indep binary-arch
-.PHONY: build clean binary-indep binary-arch binary install 
+.PHONY: build clean binary-indep binary-arch binary install
index 18633cf9ec1ac0e08554e28943c04df7d2e4704e..2cae1396403dbde89cfc816abf5e8cbf8045e89f 100644 (file)
Binary files a/qemu-kvm-src.tar.gz and b/qemu-kvm-src.tar.gz differ