commit kvm for openSUSE:Factory
Hello community, here is the log from the commit of package kvm for openSUSE:Factory checked in at Mon Sep 28 18:25:22 CEST 2009. -------- --- kvm/kvm.changes 2009-09-25 02:02:12.000000000 +0200 +++ kvm/kvm.changes 2009-09-28 17:59:29.000000000 +0200 @@ -1,0 +2,37 @@ +Mon Sep 28 15:51:58 UTC 2009 - brogers@novell.com + +- update to 0.11.0 + Changes from the qemu-kvm-0.10 series: + - merge qemu 0.11.0 + - qdev device model + - qemu-io + - i386: multiboot support for -kernel + - gdbstub: vCont support + - i386: control over boot menu + - i386: pc-0.10 compatibility machine type + - qcow2: use cache=writethrough by default + - i386: MCE emulation + - i386: host cpuid support + - slirp: host network config + - virtio: MSI-x support + - pci: allow devices to specify bus address + - migration: allow down time based threshold + - virtio-net: filtering support + - http block device support + - i386: expose numa topology to guests + - native preadv/pwritev support + - kvm: guest debugging support + - vnc: support for acls and gssapi + - monitor: allow multiple monitors + - device assignment: MSI-X support (Sheng Yang) + - device assignment: SR/IOV support (Sheng Yang) + - irqfd support (Gregory Haskins) + - drop libkvm, use some of the upstream kvm support (Glauber Costa) + - device assignment: option ROM support (Alex Williamson) + - x2apic support (Gleb Natapov) + - kvm/msi integration (Michael S. Tsirkin) + - hpet/kvm integration (Beth Kon) + - mce/kvm ingration (Huang Ying) +- refresh patch series + +------------------------------------------------------------------- calling whatdependson for head-i586 Old: ---- qemu-kvm-0.11.0-rc2.tar.bz2 New: ---- qemu-kvm-0.11.0.tar.bz2 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ kvm.spec ++++++ --- /var/tmp/diff_new_pack.RERmLX/_old 2009-09-28 18:24:47.000000000 +0200 +++ /var/tmp/diff_new_pack.RERmLX/_new 2009-09-28 18:24:47.000000000 +0200 @@ -49,9 +49,8 @@ Summary: Kernel-based Virtual Machine Url: http://www.linux-kvm.org Version: 0.11.0 -Release: 2 -%define subversion -rc2 -Source0: qemu-%name-%{version}%{subversion}.tar.bz2 +Release: 3 +Source0: qemu-%name-%{version}.tar.bz2 ExclusiveArch: %ix86 x86_64 ia64 Source1: 60-kvm.rules Source2: NETKVM-20081229.iso @@ -122,7 +121,7 @@ %else %define vanilla 1 %endif -%setup -q -n qemu-%{name}-%{version}%{subversion} +%setup -q -n qemu-%{name}-%{version} %patch01 -p1 %patch02 -p1 %patch03 -p1 ++++++ kvm-bios.patch ++++++ --- /var/tmp/diff_new_pack.RERmLX/_old 2009-09-28 18:24:48.000000000 +0200 +++ /var/tmp/diff_new_pack.RERmLX/_new 2009-09-28 18:24:48.000000000 +0200 @@ -4,11 +4,11 @@ - An PBLK which provides the size of the L2 and L3 caches - If newer hardware like ICH6 IDE is found, init it Signed-off-by: Alex Graf - http://alex.csgraf.de -Index: kvm-86/kvm/bios-mac/acpi-dsdt.dsl +Index: qemu-kvm-0.11.0/kvm/bios-mac/acpi-dsdt.dsl =================================================================== ---- kvm-86.orig/kvm/bios-mac/acpi-dsdt.dsl -+++ kvm-86/kvm/bios-mac/acpi-dsdt.dsl -@@ -152,6 +152,47 @@ DefinitionBlock ( +--- qemu-kvm-0.11.0.orig/kvm/bios-mac/acpi-dsdt.dsl ++++ qemu-kvm-0.11.0/kvm/bios-mac/acpi-dsdt.dsl +@@ -38,6 +38,47 @@ DefinitionBlock ( /* PCI Bus definition */ Scope(\_SB) { @@ -56,11 +56,11 @@ Device(PCI0) { Name (_HID, EisaId ("PNP0A03")) Name (_ADR, 0x00) -Index: kvm-86/kvm/bios-mac/rombios32.c +Index: qemu-kvm-0.11.0/kvm/bios-mac/rombios32.c =================================================================== ---- kvm-86.orig/kvm/bios-mac/rombios32.c -+++ kvm-86/kvm/bios-mac/rombios32.c -@@ -707,6 +707,9 @@ void smp_probe(void) +--- qemu-kvm-0.11.0.orig/kvm/bios-mac/rombios32.c ++++ qemu-kvm-0.11.0/kvm/bios-mac/rombios32.c +@@ -713,6 +713,9 @@ void smp_probe(void) #define PCI_DEVICE_ID_INTEL_82371AB_0 0x7110 #define PCI_DEVICE_ID_INTEL_82371AB 0x7111 #define PCI_DEVICE_ID_INTEL_82371AB_3 0x7113 @@ -70,7 +70,7 @@ #define PCI_VENDOR_ID_IBM 0x1014 #define PCI_VENDOR_ID_APPLE 0x106b -@@ -720,7 +723,9 @@ static uint32_t pci_bios_io_addr; +@@ -726,7 +729,9 @@ static uint32_t pci_bios_io_addr; static uint32_t pci_bios_mem_addr; static uint32_t pci_bios_bigmem_addr; /* host irqs corresponding to PCI irqs A-D */ @@ -81,7 +81,7 @@ static PCIDevice i440_pcidev; static void pci_config_writel(PCIDevice *d, uint32_t addr, uint32_t val) -@@ -851,7 +856,9 @@ static void pci_bios_init_bridges(PCIDev +@@ -857,7 +862,9 @@ static void pci_bios_init_bridges(PCIDev if (vendor_id == PCI_VENDOR_ID_INTEL && (device_id == PCI_DEVICE_ID_INTEL_82371SB_0 || @@ -92,7 +92,7 @@ int i, irq; uint8_t elcr[2]; -@@ -951,8 +958,9 @@ static void pci_bios_init_device(PCIDevi +@@ -957,8 +964,9 @@ static void pci_bios_init_device(PCIDevi case 0x0101: /* Mass storage controller - IDE interface */ if (vendor_id == PCI_VENDOR_ID_INTEL && (device_id == PCI_DEVICE_ID_INTEL_82371SB_1 || @@ -104,7 +104,7 @@ pci_config_writew(d, 0x40, 0x8000); // enable IDE0 pci_config_writew(d, 0x42, 0x8000); // enable IDE1 goto default_map; -@@ -1057,6 +1065,13 @@ void pci_for_each_device(void (*init_fun +@@ -1063,6 +1071,13 @@ void pci_for_each_device(void (*init_fun } } } ++++++ kvm-no-pp-directives-in-macros.patch ++++++ --- /var/tmp/diff_new_pack.RERmLX/_old 2009-09-28 18:24:48.000000000 +0200 +++ /var/tmp/diff_new_pack.RERmLX/_new 2009-09-28 18:24:48.000000000 +0200 @@ -1,5 +1,7 @@ ---- a/qemu-img.c -+++ b/qemu-img.c +Index: qemu-kvm-0.11.0/qemu-img.c +=================================================================== +--- qemu-kvm-0.11.0.orig/qemu-img.c ++++ qemu-kvm-0.11.0/qemu-img.c @@ -58,7 +58,7 @@ static void format_print(void *opaque, c /* Please keep in synch with qemu-img.texi */ static void help(void) @@ -9,9 +11,11 @@ "usage: qemu-img command [command options]\n" "QEMU disk image utility\n" "\n" ---- a/vl.c -+++ b/vl.c -@@ -4604,7 +4604,7 @@ static void version(void) +Index: qemu-kvm-0.11.0/vl.c +=================================================================== +--- qemu-kvm-0.11.0.orig/vl.c ++++ qemu-kvm-0.11.0/vl.c +@@ -4447,7 +4447,7 @@ static void version(void) static void help(int exitcode) { version(); ++++++ kvm-qemu-applesmc.patch ++++++ --- /var/tmp/diff_new_pack.RERmLX/_old 2009-09-28 18:24:48.000000000 +0200 +++ /var/tmp/diff_new_pack.RERmLX/_new 2009-09-28 18:24:48.000000000 +0200 @@ -1,8 +1,8 @@ #qemu-only -> submit upstream qemu -Index: qemu-kvm-0.11.0-rc1/Makefile.target +Index: qemu-kvm-0.11.0/Makefile.target =================================================================== ---- qemu-kvm-0.11.0-rc1.orig/Makefile.target -+++ qemu-kvm-0.11.0-rc1/Makefile.target +--- qemu-kvm-0.11.0.orig/Makefile.target ++++ qemu-kvm-0.11.0/Makefile.target @@ -529,7 +529,7 @@ obj-y += wdt_ib700.o wdt_i6300esb.o obj-i386-y = ide.o pckbd.o vga.o $(sound-obj-y) dma.o obj-i386-y += fdc.o mc146818rtc.o serial.o i8259.o i8254.o pcspk.o pc.o @@ -12,10 +12,10 @@ obj-i386-y += device-hotplug.o pci-hotplug.o smbios.o obj-i386-y += extboot.o ifeq ($(USE_KVM_PIT), 1) -Index: qemu-kvm-0.11.0-rc1/hw/applesmc.c +Index: qemu-kvm-0.11.0/hw/applesmc.c =================================================================== --- /dev/null -+++ qemu-kvm-0.11.0-rc1/hw/applesmc.c ++++ qemu-kvm-0.11.0/hw/applesmc.c @@ -0,0 +1,171 @@ +/* + * Apple SMC controller @@ -188,10 +188,10 @@ + register_ioport_write(APPLESMC_CMD_PORT, 4, 1, applesmc_io_cmd_writeb, s); +} + -Index: qemu-kvm-0.11.0-rc1/hw/pc.h +Index: qemu-kvm-0.11.0/hw/pc.h =================================================================== ---- qemu-kvm-0.11.0-rc1.orig/hw/pc.h -+++ qemu-kvm-0.11.0-rc1/hw/pc.h +--- qemu-kvm-0.11.0.orig/hw/pc.h ++++ qemu-kvm-0.11.0/hw/pc.h @@ -179,6 +179,10 @@ void pci_piix4_ide_init(PCIBus *bus, Blo void isa_ne2000_init(int base, qemu_irq irq, NICInfo *nd); @@ -203,11 +203,11 @@ /* lpc.c */ void lpc_init(PCIBus *bus, int devfn, qemu_irq *pic); -Index: qemu-kvm-0.11.0-rc1/vl.c +Index: qemu-kvm-0.11.0/vl.c =================================================================== ---- qemu-kvm-0.11.0-rc1.orig/vl.c -+++ qemu-kvm-0.11.0-rc1/vl.c -@@ -5251,6 +5251,9 @@ int main(int argc, char **argv, char **e +--- qemu-kvm-0.11.0.orig/vl.c ++++ qemu-kvm-0.11.0/vl.c +@@ -5245,6 +5245,9 @@ int main(int argc, char **argv, char **e case QEMU_OPTION_no_fd_bootchk: fd_bootchk = 0; break; @@ -217,10 +217,10 @@ #endif case QEMU_OPTION_net: if (nb_net_clients >= MAX_NET_CLIENTS) { -Index: qemu-kvm-0.11.0-rc1/qemu-options.hx +Index: qemu-kvm-0.11.0/qemu-options.hx =================================================================== ---- qemu-kvm-0.11.0-rc1.orig/qemu-options.hx -+++ qemu-kvm-0.11.0-rc1/qemu-options.hx +--- qemu-kvm-0.11.0.orig/qemu-options.hx ++++ qemu-kvm-0.11.0/qemu-options.hx @@ -684,6 +684,15 @@ be needed to boot from old floppy disks. ETEXI ++++++ kvm-qemu-default-memsize.patch ++++++ --- /var/tmp/diff_new_pack.RERmLX/_old 2009-09-28 18:24:48.000000000 +0200 +++ /var/tmp/diff_new_pack.RERmLX/_new 2009-09-28 18:24:48.000000000 +0200 @@ -1,10 +1,10 @@ -Index: kvm-88/vl.c +Index: qemu-kvm-0.11.0/vl.c =================================================================== ---- kvm-88.orig/vl.c -+++ kvm-88/vl.c -@@ -181,7 +181,7 @@ int main(int argc, char **argv) - # define LOG_IOPORT(...) do { } while (0) - #endif +--- qemu-kvm-0.11.0.orig/vl.c ++++ qemu-kvm-0.11.0/vl.c +@@ -175,7 +175,7 @@ int main(int argc, char **argv) + //#define DEBUG_NET + //#define DEBUG_SLIRP -#define DEFAULT_RAM_SIZE 128 +#define DEFAULT_RAM_SIZE 384 ++++++ kvm-qemu-ide-ich6.patch ++++++ --- /var/tmp/diff_new_pack.RERmLX/_old 2009-09-28 18:24:48.000000000 +0200 +++ /var/tmp/diff_new_pack.RERmLX/_new 2009-09-28 18:24:48.000000000 +0200 @@ -1,10 +1,10 @@ #qemu-only -> submit upstream qemu -Index: qemu-kvm-0.11.0-rc1/hw/ide.c +Index: qemu-kvm-0.11.0/hw/ide.c =================================================================== ---- qemu-kvm-0.11.0-rc1.orig/hw/ide.c -+++ qemu-kvm-0.11.0-rc1/hw/ide.c -@@ -473,6 +473,7 @@ static inline int media_is_cd(IDEState * +--- qemu-kvm-0.11.0.orig/hw/ide.c ++++ qemu-kvm-0.11.0/hw/ide.c +@@ -474,6 +474,7 @@ static inline int media_is_cd(IDEState * #define IDE_TYPE_PIIX3 0 #define IDE_TYPE_CMD646 1 #define IDE_TYPE_PIIX4 2 @@ -12,7 +12,7 @@ /* CMD646 specific */ #define MRDMODE 0x71 -@@ -3385,6 +3386,57 @@ void pci_piix3_ide_init(PCIBus *bus, Blo +@@ -3411,6 +3412,57 @@ void pci_piix3_ide_init(PCIBus *bus, Blo qemu_register_reset(piix3_reset, d); piix3_reset(d); @@ -70,10 +70,10 @@ pci_register_bar((PCIDevice *)d, 4, 0x10, PCI_ADDRESS_SPACE_IO, bmdma_map); -Index: qemu-kvm-0.11.0-rc1/hw/irq.c +Index: qemu-kvm-0.11.0/hw/irq.c =================================================================== ---- qemu-kvm-0.11.0-rc1.orig/hw/irq.c -+++ qemu-kvm-0.11.0-rc1/hw/irq.c +--- qemu-kvm-0.11.0.orig/hw/irq.c ++++ qemu-kvm-0.11.0/hw/irq.c @@ -35,6 +35,7 @@ void qemu_set_irq(qemu_irq irq, int leve if (!irq) return; @@ -82,10 +82,10 @@ irq->handler(irq->opaque, irq->n, level); } -Index: qemu-kvm-0.11.0-rc1/hw/pc.h +Index: qemu-kvm-0.11.0/hw/pc.h =================================================================== ---- qemu-kvm-0.11.0-rc1.orig/hw/pc.h -+++ qemu-kvm-0.11.0-rc1/hw/pc.h +--- qemu-kvm-0.11.0.orig/hw/pc.h ++++ qemu-kvm-0.11.0/hw/pc.h @@ -174,6 +174,8 @@ void pci_piix3_ide_init(PCIBus *bus, Blo qemu_irq *pic); void pci_piix4_ide_init(PCIBus *bus, BlockDriverState **hd_table, int devfn, ++++++ kvm-qemu-macmodel.patch ++++++ --- /var/tmp/diff_new_pack.RERmLX/_old 2009-09-28 18:24:48.000000000 +0200 +++ /var/tmp/diff_new_pack.RERmLX/_new 2009-09-28 18:24:48.000000000 +0200 @@ -7,10 +7,10 @@ # pc_init1(.... , PCI | IOAPIC | PIIX, ..... # pc_init1(.... , PCI | ICH6, LPC, SMC , ...) -Index: qemu-kvm-0.11.0-rc2/hw/pc.c +Index: qemu-kvm-0.11.0/hw/pc.c =================================================================== ---- qemu-kvm-0.11.0-rc2.orig/hw/pc.c -+++ qemu-kvm-0.11.0-rc2/hw/pc.c +--- qemu-kvm-0.11.0.orig/hw/pc.c ++++ qemu-kvm-0.11.0/hw/pc.c @@ -92,6 +92,12 @@ static void option_rom_setup_reset(targe qemu_register_reset(option_rom_reset, rrd); } @@ -277,11 +277,11 @@ } machine_init(pc_machine_init); -Index: qemu-kvm-0.11.0-rc2/vl.c +Index: qemu-kvm-0.11.0/vl.c =================================================================== ---- qemu-kvm-0.11.0-rc2.orig/vl.c -+++ qemu-kvm-0.11.0-rc2/vl.c -@@ -6008,6 +6008,10 @@ int main(int argc, char **argv, char **e +--- qemu-kvm-0.11.0.orig/vl.c ++++ qemu-kvm-0.11.0/vl.c +@@ -5837,6 +5837,10 @@ int main(int argc, char **argv, char **e if (kvm_enabled()) { int ret; ++++++ kvm-qemu-no-fallback-if-open-kvm-fails.patch ++++++ --- /var/tmp/diff_new_pack.RERmLX/_old 2009-09-28 18:24:48.000000000 +0200 +++ /var/tmp/diff_new_pack.RERmLX/_new 2009-09-28 18:24:48.000000000 +0200 @@ -1,13 +1,13 @@ -Index: qemu-kvm-0.11.0-rc1/vl.c +Index: qemu-kvm-0.11.0/vl.c =================================================================== ---- qemu-kvm-0.11.0-rc1.orig/vl.c -+++ qemu-kvm-0.11.0-rc1/vl.c -@@ -6017,6 +6017,8 @@ int main(int argc, char **argv, char **e +--- qemu-kvm-0.11.0.orig/vl.c ++++ qemu-kvm-0.11.0/vl.c +@@ -5840,6 +5840,8 @@ int main(int argc, char **argv, char **e fprintf(stderr, "failed to initialize KVM\n"); exit(1); #endif + fprintf(stderr, "Could not initialize KVM. Do you have kvm-amd or kvm-intel modprobe'd?\nIf you want to use CPU emulation, start with -no-kvm.\n"); + exit(1); fprintf(stderr, "Could not initialize KVM, will disable KVM support\n"); - kvm_allowed = 0; + kvm_allowed = 0; } ++++++ kvm-qemu-preXX-dictzip1.patch ++++++ --- /var/tmp/diff_new_pack.RERmLX/_old 2009-09-28 18:24:48.000000000 +0200 +++ /var/tmp/diff_new_pack.RERmLX/_new 2009-09-28 18:24:48.000000000 +0200 @@ -24,11 +24,11 @@ 2 files changed, 502 insertions(+), 1 deletions(-) create mode 100644 block/dictzip.c -Index: qemu-kvm-0.11.0-rc1/Makefile +Index: qemu-kvm-0.11.0/Makefile =================================================================== ---- qemu-kvm-0.11.0-rc1.orig/Makefile -+++ qemu-kvm-0.11.0-rc1/Makefile -@@ -79,7 +79,7 @@ block-obj-y += nbd.o block.o aio.o aes.o +--- qemu-kvm-0.11.0.orig/Makefile ++++ qemu-kvm-0.11.0/Makefile +@@ -86,7 +86,7 @@ block-obj-y += nbd.o block.o aio.o aes.o block-nested-y += cow.o qcow.o vmdk.o cloop.o dmg.o bochs.o vpc.o vvfat.o block-nested-y += qcow2.o qcow2-refcount.o qcow2-cluster.o qcow2-snapshot.o @@ -37,10 +37,10 @@ ifdef CONFIG_WIN32 -Index: qemu-kvm-0.11.0-rc1/block/dictzip.c +Index: qemu-kvm-0.11.0/block/dictzip.c =================================================================== --- /dev/null -+++ qemu-kvm-0.11.0-rc1/block/dictzip.c ++++ qemu-kvm-0.11.0/block/dictzip.c @@ -0,0 +1,567 @@ +/* + * DictZip Block driver for dictzip enabled gzip files ++++++ kvm-qemu-preXX-dictzip2.patch ++++++ --- /var/tmp/diff_new_pack.RERmLX/_old 2009-09-28 18:24:48.000000000 +0200 +++ /var/tmp/diff_new_pack.RERmLX/_new 2009-09-28 18:24:48.000000000 +0200 @@ -25,11 +25,11 @@ 2 files changed, 334 insertions(+), 1 deletions(-) create mode 100644 block/tar.c -Index: qemu-kvm-0.11.0-rc1/Makefile +Index: qemu-kvm-0.11.0/Makefile =================================================================== ---- qemu-kvm-0.11.0-rc1.orig/Makefile -+++ qemu-kvm-0.11.0-rc1/Makefile -@@ -79,7 +79,7 @@ block-obj-y += nbd.o block.o aio.o aes.o +--- qemu-kvm-0.11.0.orig/Makefile ++++ qemu-kvm-0.11.0/Makefile +@@ -86,7 +86,7 @@ block-obj-y += nbd.o block.o aio.o aes.o block-nested-y += cow.o qcow.o vmdk.o cloop.o dmg.o bochs.o vpc.o vvfat.o block-nested-y += qcow2.o qcow2-refcount.o qcow2-cluster.o qcow2-snapshot.o @@ -38,10 +38,10 @@ ifdef CONFIG_WIN32 -Index: qemu-kvm-0.11.0-rc1/block/tar.c +Index: qemu-kvm-0.11.0/block/tar.c =================================================================== --- /dev/null -+++ qemu-kvm-0.11.0-rc1/block/tar.c ++++ qemu-kvm-0.11.0/block/tar.c @@ -0,0 +1,338 @@ +/* + * Tar block driver ++++++ kvm-qemu-preXX-dictzip3.patch ++++++ --- /var/tmp/diff_new_pack.RERmLX/_old 2009-09-28 18:24:48.000000000 +0200 +++ /var/tmp/diff_new_pack.RERmLX/_new 2009-09-28 18:24:48.000000000 +0200 @@ -7,11 +7,11 @@ block.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) -Index: qemu-kvm-0.10.5/block.c +Index: qemu-kvm-0.11.0/block.c =================================================================== ---- qemu-kvm-0.10.5.orig/block.c -+++ qemu-kvm-0.10.5/block.c -@@ -357,11 +357,11 @@ int bdrv_open2(BlockDriverState *bs, con +--- qemu-kvm-0.11.0.orig/block.c ++++ qemu-kvm-0.11.0/block.c +@@ -358,11 +358,11 @@ int bdrv_open2(BlockDriverState *bs, con return ret; } total_size = bdrv_getlength(bs1) >> SECTOR_BITS; ++++++ kvm-qemu-preXX-dirty-bitmap-alloc.patch ++++++ --- /var/tmp/diff_new_pack.RERmLX/_old 2009-09-28 18:24:48.000000000 +0200 +++ /var/tmp/diff_new_pack.RERmLX/_new 2009-09-28 18:24:48.000000000 +0200 @@ -1,7 +1,7 @@ -Index: qemu-kvm-0.11.0-rc2/qemu-kvm.c +Index: qemu-kvm-0.11.0/qemu-kvm.c =================================================================== ---- qemu-kvm-0.11.0-rc2.orig/qemu-kvm.c -+++ qemu-kvm-0.11.0-rc2/qemu-kvm.c +--- qemu-kvm-0.11.0.orig/qemu-kvm.c ++++ qemu-kvm-0.11.0/qemu-kvm.c @@ -692,7 +692,7 @@ int kvm_get_dirty_pages_range(kvm_contex for (i = 0; i < KVM_MAX_NUM_MEM_REGIONS; ++i) { if ((slots[i].len && (uint64_t)slots[i].phys_addr >= phys_addr) ++++++ kvm-qemu-rtl8139-link.patch ++++++ --- /var/tmp/diff_new_pack.RERmLX/_old 2009-09-28 18:24:48.000000000 +0200 +++ /var/tmp/diff_new_pack.RERmLX/_new 2009-09-28 18:24:48.000000000 +0200 @@ -1,10 +1,10 @@ # Fix the Link detection in MacOS # Author Alex Graf - agraf@suse -Index: qemu-kvm-0.11.0-rc1/hw/rtl8139.c +Index: qemu-kvm-0.11.0/hw/rtl8139.c =================================================================== ---- qemu-kvm-0.11.0-rc1.orig/hw/rtl8139.c -+++ qemu-kvm-0.11.0-rc1/hw/rtl8139.c +--- qemu-kvm-0.11.0.orig/hw/rtl8139.c ++++ qemu-kvm-0.11.0/hw/rtl8139.c @@ -422,6 +422,9 @@ static void RTL8139TallyCounters_load(QE /* Saves values of tally counters to VM state file */ static void RTL8139TallyCounters_save(QEMUFile* f, RTL8139TallyCounters *tally_counters); @@ -71,11 +71,11 @@ rtl8139_reset(s); s->vc = qdev_get_vlan_client(&dev->qdev, rtl8139_can_receive, rtl8139_receive, NULL, -Index: qemu-kvm-0.11.0-rc1/net.h +Index: qemu-kvm-0.11.0/net.h =================================================================== ---- qemu-kvm-0.11.0-rc1.orig/net.h -+++ qemu-kvm-0.11.0-rc1/net.h -@@ -98,6 +98,13 @@ enum { +--- qemu-kvm-0.11.0.orig/net.h ++++ qemu-kvm-0.11.0/net.h +@@ -99,6 +99,13 @@ enum { NIC_NVECTORS_UNSPECIFIED = -1 }; @@ -89,7 +89,7 @@ struct NICInfo { uint8_t macaddr[6]; const char *model; -@@ -108,6 +115,7 @@ struct NICInfo { +@@ -109,6 +116,7 @@ struct NICInfo { VLANClientState *vc; void *private; int used; @@ -97,11 +97,11 @@ int bootable; int nvectors; }; -Index: qemu-kvm-0.11.0-rc1/net.c +Index: qemu-kvm-0.11.0/net.c =================================================================== ---- qemu-kvm-0.11.0-rc1.orig/net.c -+++ qemu-kvm-0.11.0-rc1/net.c -@@ -2670,6 +2670,7 @@ int net_client_init(Monitor *mon, const +--- qemu-kvm-0.11.0.orig/net.c ++++ qemu-kvm-0.11.0/net.c +@@ -2671,6 +2671,7 @@ int net_client_init(Monitor *mon, const } nd->vlan = vlan; nd->name = name; @@ -109,11 +109,11 @@ nd->used = 1; name = NULL; nb_nics++; -Index: qemu-kvm-0.11.0-rc1/hw/pc.c +Index: qemu-kvm-0.11.0/hw/pc.c =================================================================== ---- qemu-kvm-0.11.0-rc1.orig/hw/pc.c -+++ qemu-kvm-0.11.0-rc1/hw/pc.c -@@ -1389,7 +1389,10 @@ static void pc_init1(ram_addr_t ram_size +--- qemu-kvm-0.11.0.orig/hw/pc.c ++++ qemu-kvm-0.11.0/hw/pc.c +@@ -1382,7 +1382,10 @@ static void pc_init1(ram_addr_t ram_size if (model == MODEL_ISA || (nd->model && strcmp(nd->model, "ne2k_isa") == 0)) pc_init_ne2k_isa(nd, i8259); ++++++ qemu-kvm-0.11.0-rc2.tar.bz2 -> qemu-kvm-0.11.0.tar.bz2 ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qemu-kvm-0.11.0-rc2/Changelog new/qemu-kvm-0.11.0/Changelog --- old/qemu-kvm-0.11.0-rc2/Changelog 2009-08-30 11:10:59.000000000 +0200 +++ new/qemu-kvm-0.11.0/Changelog 2009-09-23 09:30:02.000000000 +0200 @@ -1,3 +1,14 @@ +version 0.11.0 + - fix rtc polling mode (Bernhard Kauer) + - qcow2: order concurrent aio requests (Kevin Wolf) + - qemu-io: port to win32 (Stefan Weil) + - alpha: fix extlh instruction (Vince Weaver) + - tcg: fix size of local variables in tcg_gen_bswap64_i64 (Stefan Weil) + - net: fix send ordering (Jan Kiszka) + - escc: fix IRQ routing (Aurelien Jarno) + - versatile: fix Linux task preemption (Aurelien Jarno) + - curses: reduce memory usage by 250MB (Aurelien Jarno) + version 0.11.0-rc2 - mips: fix conditional move off fp conditions codes (Nath Froyd) - fix migration to obey -S (Paolo Bonzini) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qemu-kvm-0.11.0-rc2/KVM_VERSION new/qemu-kvm-0.11.0/KVM_VERSION --- old/qemu-kvm-0.11.0-rc2/KVM_VERSION 2009-09-07 14:52:18.000000000 +0200 +++ new/qemu-kvm-0.11.0/KVM_VERSION 2009-09-27 08:51:17.000000000 +0200 @@ -1 +1 @@ -qemu-kvm-0.11.0-rc2 +qemu-kvm-0.11.0 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qemu-kvm-0.11.0-rc2/Makefile new/qemu-kvm-0.11.0/Makefile --- old/qemu-kvm-0.11.0-rc2/Makefile 2009-08-30 11:10:59.000000000 +0200 +++ new/qemu-kvm-0.11.0/Makefile 2009-09-23 09:30:02.000000000 +0200 @@ -305,8 +305,8 @@ if [ -f $(SRC_PATH)/pc-bios/$$x ];then \ $(INSTALL_DATA) $(SRC_PATH)/pc-bios/$$x "$(DESTDIR)$(datadir)"; \ fi \ - ; if [ -f $(SRC_PATH)/pc-bios/optionrom/$$x ];then \ - $(INSTALL_DATA) $(SRC_PATH)/pc-bios/optionrom/$$x "$(DESTDIR)$(datadir)"; \ + ; if [ -f pc-bios/optionrom/$$x ];then \ + $(INSTALL_DATA) pc-bios/optionrom/$$x "$(DESTDIR)$(datadir)"; \ fi \ done endif diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qemu-kvm-0.11.0-rc2/VERSION new/qemu-kvm-0.11.0/VERSION --- old/qemu-kvm-0.11.0-rc2/VERSION 2009-08-30 11:10:59.000000000 +0200 +++ new/qemu-kvm-0.11.0/VERSION 2009-09-23 09:30:02.000000000 +0200 @@ -1 +1 @@ -0.10.92 +0.11.0 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qemu-kvm-0.11.0-rc2/block/qcow2-cluster.c new/qemu-kvm-0.11.0/block/qcow2-cluster.c --- old/qemu-kvm-0.11.0-rc2/block/qcow2-cluster.c 2009-08-30 11:10:59.000000000 +0200 +++ new/qemu-kvm-0.11.0/block/qcow2-cluster.c 2009-09-23 09:30:02.000000000 +0200 @@ -684,6 +684,7 @@ int l2_index, ret; uint64_t l2_offset, *l2_table, cluster_offset; int nb_clusters, i = 0; + QCowL2Meta *old_alloc; ret = get_cluster_table(bs, offset, &l2_table, &l2_offset, &l2_index); if (ret == 0) @@ -732,6 +733,44 @@ } nb_clusters = i; + /* + * Check if there already is an AIO write request in flight which allocates + * the same cluster. In this case we need to wait until the previous + * request has completed and updated the L2 table accordingly. + */ + LIST_FOREACH(old_alloc, &s->cluster_allocs, next_in_flight) { + + uint64_t end_offset = offset + nb_clusters * s->cluster_size; + uint64_t old_offset = old_alloc->offset; + uint64_t old_end_offset = old_alloc->offset + + old_alloc->nb_clusters * s->cluster_size; + + if (end_offset < old_offset || offset > old_end_offset) { + /* No intersection */ + } else { + if (offset < old_offset) { + /* Stop at the start of a running allocation */ + nb_clusters = (old_offset - offset) >> s->cluster_bits; + } else { + nb_clusters = 0; + } + + if (nb_clusters == 0) { + /* Set dependency and wait for a callback */ + m->depends_on = old_alloc; + m->nb_clusters = 0; + *num = 0; + return 0; + } + } + } + + if (!nb_clusters) { + abort(); + } + + LIST_INSERT_HEAD(&s->cluster_allocs, m, next_in_flight); + /* allocate a new cluster */ cluster_offset = qcow2_alloc_clusters(bs, nb_clusters * s->cluster_size); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qemu-kvm-0.11.0-rc2/block/qcow2.c new/qemu-kvm-0.11.0/block/qcow2.c --- old/qemu-kvm-0.11.0-rc2/block/qcow2.c 2009-08-30 11:10:59.000000000 +0200 +++ new/qemu-kvm-0.11.0/block/qcow2.c 2009-09-23 09:30:02.000000000 +0200 @@ -219,6 +219,8 @@ if (qcow2_refcount_init(bs) < 0) goto fail; + LIST_INIT(&s->cluster_allocs); + /* read qcow2 extensions */ if (header.backing_file_offset) ext_end = header.backing_file_offset; @@ -338,6 +340,7 @@ QEMUIOVector hd_qiov; QEMUBH *bh; QCowL2Meta l2meta; + LIST_ENTRY(QCowAIOCB) next_depend; } QCowAIOCB; static void qcow_aio_cancel(BlockDriverAIOCB *blockacb) @@ -500,6 +503,7 @@ acb->n = 0; acb->cluster_offset = 0; acb->l2meta.nb_clusters = 0; + LIST_INIT(&acb->l2meta.dependent_requests); return acb; } @@ -517,6 +521,33 @@ return &acb->common; } +static void qcow_aio_write_cb(void *opaque, int ret); + +static void run_dependent_requests(QCowL2Meta *m) +{ + QCowAIOCB *req; + QCowAIOCB *next; + + /* Take the request off the list of running requests */ + if (m->nb_clusters != 0) { + LIST_REMOVE(m, next_in_flight); + } + + /* + * Restart all dependent requests. + * Can't use LIST_FOREACH here - the next link might not be the same + * any more after the callback (request could depend on a different + * request now) + */ + for (req = m->dependent_requests.lh_first; req != NULL; req = next) { + next = req->next_depend.le_next; + qcow_aio_write_cb(req, 0); + } + + /* Empty the list for the next part of the request */ + LIST_INIT(&m->dependent_requests); +} + static void qcow_aio_write_cb(void *opaque, int ret) { QCowAIOCB *acb = opaque; @@ -528,14 +559,15 @@ acb->hd_aiocb = NULL; + if (ret >= 0) { + ret = qcow2_alloc_cluster_link_l2(bs, acb->cluster_offset, &acb->l2meta); + } + + run_dependent_requests(&acb->l2meta); + if (ret < 0) goto done; - if (qcow2_alloc_cluster_link_l2(bs, acb->cluster_offset, &acb->l2meta) < 0) { - qcow2_free_any_clusters(bs, acb->cluster_offset, acb->l2meta.nb_clusters); - goto done; - } - acb->nb_sectors -= acb->n; acb->sector_num += acb->n; acb->buf += acb->n * 512; @@ -555,6 +587,14 @@ acb->cluster_offset = qcow2_alloc_cluster_offset(bs, acb->sector_num << 9, index_in_cluster, n_end, &acb->n, &acb->l2meta); + + /* Need to wait for another request? If so, we are done for now. */ + if (!acb->cluster_offset && acb->l2meta.depends_on != NULL) { + LIST_INSERT_HEAD(&acb->l2meta.depends_on->dependent_requests, + acb, next_depend); + return; + } + if (!acb->cluster_offset || (acb->cluster_offset & 511) != 0) { ret = -EIO; goto done; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qemu-kvm-0.11.0-rc2/block/qcow2.h new/qemu-kvm-0.11.0/block/qcow2.h --- old/qemu-kvm-0.11.0-rc2/block/qcow2.h 2009-08-30 11:10:59.000000000 +0200 +++ new/qemu-kvm-0.11.0/block/qcow2.h 2009-09-23 09:30:02.000000000 +0200 @@ -98,6 +98,7 @@ uint8_t *cluster_cache; uint8_t *cluster_data; uint64_t cluster_cache_offset; + LIST_HEAD(QCowClusterAlloc, QCowL2Meta) cluster_allocs; uint64_t *refcount_table; uint64_t refcount_table_offset; @@ -128,6 +129,8 @@ int64_t refcount_block_offset; } QCowCreateState; +struct QCowAIOCB; + /* XXX This could be private for qcow2-cluster.c */ typedef struct QCowL2Meta { @@ -135,6 +138,10 @@ int n_start; int nb_available; int nb_clusters; + struct QCowL2Meta *depends_on; + LIST_HEAD(QCowAioDependencies, QCowAIOCB) dependent_requests; + + LIST_ENTRY(QCowL2Meta) next_in_flight; } QCowL2Meta; static inline int size_to_clusters(BDRVQcowState *s, int64_t size) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qemu-kvm-0.11.0-rc2/cmd.c new/qemu-kvm-0.11.0/cmd.c --- old/qemu-kvm-0.11.0-rc2/cmd.c 2009-08-30 11:10:59.000000000 +0200 +++ new/qemu-kvm-0.11.0/cmd.c 2009-09-23 09:30:02.000000000 +0200 @@ -20,6 +20,7 @@ #include <string.h> #include <ctype.h> #include <errno.h> +#include <sys/time.h> #include "cmd.h" @@ -283,6 +284,26 @@ } #endif +static char *qemu_strsep(char **input, const char *delim) +{ + char *result = *input; + if (result != NULL) { + char *p = result; + for (p = result; *p != '\0'; p++) { + if (strchr(delim, *p)) { + break; + } + } + if (*p == '\0') { + *input = NULL; + } else { + *p = '\0'; + *input = p + 1; + } + } + return result; +} + char ** breakline( char *input, @@ -292,7 +313,7 @@ char *p; char **rval = calloc(sizeof(char *), 1); - while (rval && (p = strsep(&input, " ")) != NULL) { + while (rval && (p = qemu_strsep(&input, " ")) != NULL) { if (!*p) continue; c++; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qemu-kvm-0.11.0-rc2/configure new/qemu-kvm-0.11.0/configure --- old/qemu-kvm-0.11.0-rc2/configure 2009-08-30 11:10:59.000000000 +0200 +++ new/qemu-kvm-0.11.0/configure 2009-09-23 09:30:02.000000000 +0200 @@ -1954,6 +1954,8 @@ tools="qemu-img\$(EXESUF) $tools" if [ "$linux" = "yes" ] ; then tools="qemu-nbd\$(EXESUF) qemu-io\$(EXESUF) $tools" + elif test "$mingw32" = "yes" ; then + tools="qemu-io\$(EXESUF) $tools" fi fi echo "TOOLS=$tools" >> $config_host_mak diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qemu-kvm-0.11.0-rc2/curses.c new/qemu-kvm-0.11.0/curses.c --- old/qemu-kvm-0.11.0-rc2/curses.c 2009-08-30 11:10:59.000000000 +0200 +++ new/qemu-kvm-0.11.0/curses.c 2009-09-23 09:30:02.000000000 +0200 @@ -368,7 +368,4 @@ ds->surface = qemu_create_displaysurface_from(640, 400, 0, 0, (uint8_t*) screen); invalidate = 1; - - /* Standard VGA initial text mode dimensions */ - curses_resize(ds); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qemu-kvm-0.11.0-rc2/hw/arm_sysctl.c new/qemu-kvm-0.11.0/hw/arm_sysctl.c --- old/qemu-kvm-0.11.0-rc2/hw/arm_sysctl.c 2009-08-30 11:10:59.000000000 +0200 +++ new/qemu-kvm-0.11.0/hw/arm_sysctl.c 2009-09-23 09:30:02.000000000 +0200 @@ -7,6 +7,8 @@ * This code is licenced under the GPL. */ +#include "hw.h" +#include "qemu-timer.h" #include "sysbus.h" #include "primecell.h" #include "sysemu.h" @@ -71,8 +73,7 @@ case 0x58: /* BOOTCS */ return 0; case 0x5c: /* 24MHz */ - /* ??? not implemented. */ - return 0; + return muldiv64(qemu_get_clock(vm_clock), 24000000, ticks_per_sec); case 0x60: /* MISC */ return 0; case 0x84: /* PROCID0 */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qemu-kvm-0.11.0-rc2/hw/escc.c new/qemu-kvm-0.11.0/hw/escc.c --- old/qemu-kvm-0.11.0-rc2/hw/escc.c 2009-08-30 11:10:59.000000000 +0200 +++ new/qemu-kvm-0.11.0/hw/escc.c 2009-09-23 09:30:02.000000000 +0200 @@ -743,8 +743,8 @@ qdev_prop_set_uint32(dev, "chnAtype", ser); qdev_init(dev); s = sysbus_from_qdev(dev); - sysbus_connect_irq(s, 0, irqA); - sysbus_connect_irq(s, 1, irqB); + sysbus_connect_irq(s, 0, irqB); + sysbus_connect_irq(s, 1, irqA); if (base) { sysbus_mmio_map(s, 0, base); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qemu-kvm-0.11.0-rc2/hw/mc146818rtc.c new/qemu-kvm-0.11.0/hw/mc146818rtc.c --- old/qemu-kvm-0.11.0-rc2/hw/mc146818rtc.c 2009-08-30 11:10:59.000000000 +0200 +++ new/qemu-kvm-0.11.0/hw/mc146818rtc.c 2009-09-23 09:30:02.000000000 +0200 @@ -421,9 +421,10 @@ } /* update ended interrupt */ + s->cmos_data[RTC_REG_C] |= REG_C_UF; if (s->cmos_data[RTC_REG_B] & REG_B_UIE) { - s->cmos_data[RTC_REG_C] |= 0x90; - rtc_irq_raise(s->irq); + s->cmos_data[RTC_REG_C] |= REG_C_IRQF; + rtc_irq_raise(s->irq); } /* clear update in progress bit */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qemu-kvm-0.11.0-rc2/hw/msix.c new/qemu-kvm-0.11.0/hw/msix.c --- old/qemu-kvm-0.11.0-rc2/hw/msix.c 2009-08-30 11:10:59.000000000 +0200 +++ new/qemu-kvm-0.11.0/hw/msix.c 2009-09-23 09:30:02.000000000 +0200 @@ -503,13 +503,19 @@ /* Mark vector as used. */ int msix_vector_use(PCIDevice *dev, unsigned vector) { + int ret; if (vector >= dev->msix_entries_nr) return -EINVAL; - if (dev->msix_entry_used[vector]++) + if (dev->msix_entry_used[vector]) { return 0; + } if (kvm_enabled() && qemu_kvm_irqchip_in_kernel()) { - return kvm_msix_add(dev, vector); + ret = kvm_msix_add(dev, vector); + if (ret) { + return ret; + } } + ++dev->msix_entry_used[vector]; return 0; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qemu-kvm-0.11.0-rc2/net.c new/qemu-kvm-0.11.0/net.c --- old/qemu-kvm-0.11.0-rc2/net.c 2009-08-30 11:10:59.000000000 +0200 +++ new/qemu-kvm-0.11.0/net.c 2009-09-23 09:30:02.000000000 +0200 @@ -470,34 +470,29 @@ void qemu_purge_queued_packets(VLANClientState *vc) { - VLANPacket **pp = &vc->vlan->send_queue; - - while (*pp != NULL) { - VLANPacket *packet = *pp; + VLANPacket *packet, *next; + TAILQ_FOREACH_SAFE(packet, &vc->vlan->send_queue, entry, next) { if (packet->sender == vc) { - *pp = packet->next; + TAILQ_REMOVE(&vc->vlan->send_queue, packet, entry); qemu_free(packet); - } else { - pp = &packet->next; } } } void qemu_flush_queued_packets(VLANClientState *vc) { - VLANPacket *packet; - - while ((packet = vc->vlan->send_queue) != NULL) { + while (!TAILQ_EMPTY(&vc->vlan->send_queue)) { + VLANPacket *packet; int ret; - vc->vlan->send_queue = packet->next; + packet = TAILQ_FIRST(&vc->vlan->send_queue); + TAILQ_REMOVE(&vc->vlan->send_queue, packet, entry); ret = qemu_deliver_packet(packet->sender, packet->data, packet->size, packet->raw); if (ret == 0 && packet->sent_cb != NULL) { - packet->next = vc->vlan->send_queue; - vc->vlan->send_queue = packet; + TAILQ_INSERT_HEAD(&vc->vlan->send_queue, packet, entry); break; } @@ -515,13 +510,13 @@ VLANPacket *packet; packet = qemu_malloc(sizeof(VLANPacket) + size); - packet->next = sender->vlan->send_queue; packet->sender = sender; packet->size = size; packet->raw = raw; packet->sent_cb = sent_cb; memcpy(packet->data, buf, size); - sender->vlan->send_queue = packet; + + TAILQ_INSERT_TAIL(&sender->vlan->send_queue, packet, entry); } static ssize_t qemu_send_packet_async2(VLANClientState *sender, @@ -645,7 +640,6 @@ max_len = calc_iov_length(iov, iovcnt); packet = qemu_malloc(sizeof(VLANPacket) + max_len); - packet->next = sender->vlan->send_queue; packet->sender = sender; packet->sent_cb = sent_cb; packet->size = 0; @@ -658,7 +652,7 @@ packet->size += len; } - sender->vlan->send_queue = packet; + TAILQ_INSERT_TAIL(&sender->vlan->send_queue, packet, entry); return packet->size; } @@ -2530,6 +2524,7 @@ } vlan = qemu_mallocz(sizeof(VLANState)); vlan->id = id; + TAILQ_INIT(&vlan->send_queue); vlan->next = NULL; pvlan = &first_vlan; while (*pvlan != NULL) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qemu-kvm-0.11.0-rc2/net.h new/qemu-kvm-0.11.0/net.h --- old/qemu-kvm-0.11.0-rc2/net.h 2009-08-30 11:10:59.000000000 +0200 +++ new/qemu-kvm-0.11.0/net.h 2009-09-23 09:30:02.000000000 +0200 @@ -1,6 +1,7 @@ #ifndef QEMU_NET_H #define QEMU_NET_H +#include "sys-queue.h" #include "qemu-common.h" /* VLANs support */ @@ -38,7 +39,7 @@ typedef void (NetPacketSent) (VLANClientState *, ssize_t); struct VLANPacket { - struct VLANPacket *next; + TAILQ_ENTRY(VLANPacket) entry; VLANClientState *sender; int size; int raw; @@ -51,7 +52,7 @@ VLANClientState *first_client; struct VLANState *next; unsigned int nb_guest_devs, nb_host_devs; - VLANPacket *send_queue; + TAILQ_HEAD(send_queue, VLANPacket) send_queue; int delivering; }; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qemu-kvm-0.11.0-rc2/qemu-io.c new/qemu-kvm-0.11.0/qemu-io.c --- old/qemu-kvm-0.11.0-rc2/qemu-io.c 2009-08-30 11:10:59.000000000 +0200 +++ new/qemu-kvm-0.11.0/qemu-io.c 2009-09-23 09:30:02.000000000 +0200 @@ -7,10 +7,12 @@ * This work is licensed under the terms of the GNU GPL, version 2 or later. * See the COPYING file in the top-level directory. */ +#include <sys/time.h> #include <sys/types.h> #include <stdarg.h> #include <stdio.h> #include <getopt.h> +#include <libgen.h> #include "qemu-common.h" #include "block_int.h" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qemu-kvm-0.11.0-rc2/target-alpha/translate.c new/qemu-kvm-0.11.0/target-alpha/translate.c --- old/qemu-kvm-0.11.0-rc2/target-alpha/translate.c 2009-08-30 11:10:59.000000000 +0200 +++ new/qemu-kvm-0.11.0/target-alpha/translate.c 2009-09-23 09:30:02.000000000 +0200 @@ -526,14 +526,15 @@ else tcg_gen_mov_i64(cpu_ir[rc], cpu_ir[ra]); } else { - TCGv tmp1, tmp2; + TCGv tmp1; tmp1 = tcg_temp_new(); + tcg_gen_andi_i64(tmp1, cpu_ir[rb], 7); tcg_gen_shli_i64(tmp1, tmp1, 3); - tmp2 = tcg_const_i64(64); - tcg_gen_sub_i64(tmp1, tmp2, tmp1); - tcg_temp_free(tmp2); + tcg_gen_neg_i64(tmp1, tmp1); + tcg_gen_andi_i64(tmp1, tmp1, 0x3f); tcg_gen_shl_i64(cpu_ir[rc], cpu_ir[ra], tmp1); + tcg_temp_free(tmp1); } if (tcg_gen_ext_i64) @@ -1320,7 +1321,7 @@ break; case 0x6A: /* EXTLH */ - gen_ext_h(&tcg_gen_ext16u_i64, ra, rb, rc, islit, lit); + gen_ext_h(&tcg_gen_ext32u_i64, ra, rb, rc, islit, lit); break; case 0x72: /* MSKQH */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qemu-kvm-0.11.0-rc2/tcg/tcg-op.h new/qemu-kvm-0.11.0/tcg/tcg-op.h --- old/qemu-kvm-0.11.0-rc2/tcg/tcg-op.h 2009-08-30 11:10:59.000000000 +0200 +++ new/qemu-kvm-0.11.0/tcg/tcg-op.h 2009-09-23 09:30:02.000000000 +0200 @@ -1441,9 +1441,8 @@ #ifdef TCG_TARGET_HAS_bswap64_i64 tcg_gen_op2_i64(INDEX_op_bswap64_i64, ret, arg); #else - TCGv_i32 t0, t1; - t0 = tcg_temp_new_i32(); - t1 = tcg_temp_new_i32(); + TCGv_i64 t0 = tcg_temp_new_i64(); + TCGv_i64 t1 = tcg_temp_new_i64(); tcg_gen_shli_i64(t0, arg, 56); @@ -1473,8 +1472,8 @@ tcg_gen_shri_i64(t1, arg, 56); tcg_gen_or_i64(ret, t0, t1); - tcg_temp_free_i32(t0); - tcg_temp_free_i32(t1); + tcg_temp_free_i64(t0); + tcg_temp_free_i64(t1); #endif } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qemu-kvm-0.11.0-rc2/vl.c new/qemu-kvm-0.11.0/vl.c --- old/qemu-kvm-0.11.0-rc2/vl.c 2009-08-30 11:10:59.000000000 +0200 +++ new/qemu-kvm-0.11.0/vl.c 2009-09-23 09:30:02.000000000 +0200 @@ -5831,6 +5831,20 @@ } #endif + if (kvm_enabled()) { + int ret; + + ret = kvm_init(smp_cpus); + if (ret < 0) { +#if defined(KVM_UPSTREAM) || defined(NO_CPU_EMULATION) + fprintf(stderr, "failed to initialize KVM\n"); + exit(1); +#endif + fprintf(stderr, "Could not initialize KVM, will disable KVM support\n"); + kvm_allowed = 0; + } + } + #ifdef CONFIG_KQEMU if (smp_cpus > 1) kqemu_allowed = 0; @@ -6002,20 +6016,6 @@ } } - if (kvm_enabled()) { - int ret; - - ret = kvm_init(smp_cpus); - if (ret < 0) { -#if defined(KVM_UPSTREAM) || defined(NO_CPU_EMULATION) - fprintf(stderr, "failed to initialize KVM\n"); - exit(1); -#endif - fprintf(stderr, "Could not initialize KVM, will disable KVM support\n"); - kvm_allowed = 0; - } - } - if (monitor_device) { monitor_hd = qemu_chr_open("monitor", monitor_device, NULL); if (!monitor_hd) { ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Remember to have fun... -- To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-commit+help@opensuse.org
participants (1)
-
root@Hilbert.suse.de