Hello community,
here is the log from the commit of package kvm for openSUSE:Factory
checked in at Thu May 19 09:47:14 CEST 2011.
--------
--- kvm/kvm.changes 2011-05-16 21:51:56.000000000 +0200
+++ /mounts/work_src_done/STABLE/kvm/kvm.changes 2011-05-19 00:04:27.000000000 +0200
@@ -1,0 +2,22 @@
+Wed May 18 20:01:23 UTC 2011 - brogers@novell.com
+
+- update to version 0.14.1
+ includes patches we already carry, also the following fixes:
+ qed consistency check
+ use after free issue with drive_del
+ device assignment issue
+ emulated scsi adapter ABORT message handling
+ applesmc REV key
+ handling of vhostforce parameter to -net
+ allow ISA IRQ sharing
+-------------------------------------------------------------------
+Tue May 17 10:41:58 UTC 2011 - mhopf@novell.com
+
+- Add libattr-devel to BuildRequires for OS11.3 and up (required for -virtfs).
+
+-------------------------------------------------------------------
+Sun May 15 12:44:31 UTC 2011 - andrea@opensuse.org
+
+- enabled vde2 support
+
+-------------------------------------------------------------------
calling whatdependson for head-i586
Old:
----
kvm-qemu-preXX-Don-t-allow-multiwrites-against-a-block-de.patch
kvm-qemu-preXX-exit-if-drive-specified-is-invalid-instead.patch
kvm-qemu-preXX-hw-sd.c-Add-missing-state-change-for-SD_ST.patch
kvm-qemu-preXX-vhost-fix-dirty-page-handling.patch
kvm-qemu-preXX-virtio-blk-fail-unaligned-requests.patch
kvm-qemu-preXX-virtio-pci-fix-bus-master-work-around-on-l.patch
kvm-qemu-preXX-vnc-Fix-fatal-crash-with-vnc-reverse-mode.patch
kvm-qemu-preXX-vnc-tight-Fix-crash-after-2GB-of-output.patch
qemu-kvm-0.14.0.tar.bz2
New:
----
kvm-qemu-no-hot-unplug-for-certain-devices.patch
qemu-kvm-0.14.1.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ kvm.spec ++++++
--- /var/tmp/diff_new_pack.IPzBmP/_old 2011-05-19 09:46:25.000000000 +0200
+++ /var/tmp/diff_new_pack.IPzBmP/_new 2011-05-19 09:46:25.000000000 +0200
@@ -21,7 +21,7 @@
%bcond_with vde
%bcond_with spice
-%define package_base_version 0.14.0
+%define package_base_version 0.14.1
%define package_extra_version .0
%define bios_id seabios-0.6.2
%define pxe_rom_id gpxe-1.0.1
@@ -50,7 +50,7 @@
Name: kvm
BuildRequires: SDL-devel alsa alsa-devel gnutls-devel libaio-devel libcurl-devel libpulse-devel ncurses-devel pciutils-devel perl python texinfo
%if 0%{?suse_version} >= 1130
-BuildRequires: brlapi-devel
+BuildRequires: brlapi-devel libattr-devel
%endif
%ifarch %ix86 x86_64 ia64
%if %{build_fw_from_source}
@@ -67,9 +67,10 @@
BuildRequires: pmtools
%endif
%endif
-%if %{with vde}
-BuildRequires: vde2-devel
-%endif
+BuildRequires: libvdehist0-devel
+BuildRequires: libvdemgmt0-devel
+BuildRequires: libvdeplug3-devel
+BuildRequires: libvdesnmp0-devel
%if %{with spice}
# Spice support requires pixman > 0.17, which does not included in older suse versions
%if 0%{?suse_version} >= 1130
@@ -89,7 +90,7 @@
Summary: Kernel-based Virtual Machine
Url: http://kvm.qumranet.com/
Version: %{package_base_version}%{package_extra_version}
-Release: 3
+Release: 1
Source0: qemu-%{name}-%{package_base_version}.tar.bz2
Source1: 60-kvm.rules
Source2: qemu-ifup
@@ -148,45 +149,38 @@
Patch101: kvm-qemu-preXX-dictzip2.patch
Patch102: kvm-qemu-preXX-report-default-mac-used.patch
Patch103: kvm-qemu-preXX-eepro100-pad-to-ensure-minimum-packet-size.patch
-Patch104: kvm-qemu-preXX-vnc-Fix-fatal-crash-with-vnc-reverse-mode.patch
-Patch105: kvm-qemu-preXX-hw-sd.c-Add-missing-state-change-for-SD_ST.patch
-Patch106: kvm-qemu-preXX-vnc-fix-a-memory-leak-in-threaded-vnc-serv.patch
-Patch107: kvm-qemu-preXX-device-assignment-detect-pre-fectchable-me.patch
-Patch108: kvm-qemu-preXX-qemu-kvm-Mark-VCPU-state-dirty-on-creation.patch
-Patch109: kvm-qemu-preXX-net-fix-qemu_can_send_packet-logic.patch
-Patch110: kvm-qemu-preXX-hw-pcnet.c-Fix-EPROM-contents-to-suit-AMD-.patch
-Patch111: kvm-qemu-preXX-fix-linuxboot.bin-and-multiboot.bin-to-not.patch
-Patch112: kvm-qemu-preXX-exit-if-drive-specified-is-invalid-instead.patch
-Patch113: kvm-qemu-preXX-Fix-performance-regression-in-qemu_get_ram.patch
-Patch114: kvm-qemu-preXX-kvm-Mark-VCPU-state-dirty-on-creation.patch
-Patch115: kvm-qemu-preXX-Don-t-allow-multiwrites-against-a-block-de.patch
-Patch116: kvm-qemu-preXX-virtio-pci-fix-bus-master-work-around-on-l.patch
-Patch117: kvm-qemu-preXX-virtio-serial-don-t-crash-on-invalid-input.patch
-Patch118: kvm-qemu-preXX-vhost-fix-dirty-page-handling.patch
-Patch119: kvm-qemu-preXX-e1000-multi-buffer-packet-support.patch
-Patch120: kvm-qemu-preXX-e1000-clear-EOP-for-multi-buffer-descripto.patch
-Patch121: kvm-qemu-preXX-e1000-verify-we-have-buffers-upfront.patch
-Patch122: kvm-qemu-preXX-e1000-fix-multi-descriptor-packet-checksum.patch
-Patch123: kvm-qemu-preXX-e1000-check-buffer-availability.patch
-Patch124: kvm-qemu-preXX-vnc-don-t-set-the-quality-if-lossy-encodin.patch
-Patch125: kvm-qemu-preXX-vnc-add-a-way-to-get-the-update-frequency-.patch
-Patch126: kvm-qemu-preXX-vnc-refresh-lossy-rect-after-a-given-timeo.patch
-Patch127: kvm-qemu-preXX-vnc-tight-use-the-update-frequency-to-choo.patch
-Patch128: kvm-qemu-preXX-vnc-palette-use-a-pool-to-reduce-memory-al.patch
-Patch129: kvm-qemu-preXX-vnc-palette-add-palette_init-calls.patch
-Patch130: kvm-qemu-preXX-vnc-palette-and-fill-and-color-calls.patch
-Patch131: kvm-qemu-preXX-vnc-Add-ZRLE-and-ZYWRLE-encodings.patch
-Patch132: kvm-qemu-preXX-vnc-fix-uint8_t-comparisons-with-negative-.patch
-Patch133: kvm-qemu-preXX-vnc-fix-lossy-rect-refreshing.patch
-Patch134: kvm-qemu-preXX-bitmap-add-a-generic-bitmap-and-bitops-lib.patch
-Patch135: kvm-qemu-preXX-ui-vnc-enc-tight.c-Fix-compile-failure-if-.patch
-Patch136: kvm-qemu-preXX-vnc-use-the-new-generic-bitmap-functions.patch
-Patch137: kvm-qemu-preXX-vnc-Fix-stack-corruption-and-other-bitmap-.patch
-Patch138: kvm-qemu-preXX-fix-vnc-regression.patch
-Patch139: kvm-qemu-preXX-vnc-fix-build-error-from-VNC_DIRTY_WORDS.patch
-Patch140: kvm-qemu-preXX-severe-memory-leak-caused-by-broken-palett.patch
-Patch141: kvm-qemu-preXX-virtio-blk-fail-unaligned-requests.patch
-Patch142: kvm-qemu-preXX-vnc-tight-Fix-crash-after-2GB-of-output.patch
+Patch104: kvm-qemu-preXX-vnc-fix-a-memory-leak-in-threaded-vnc-serv.patch
+Patch105: kvm-qemu-preXX-device-assignment-detect-pre-fectchable-me.patch
+Patch106: kvm-qemu-preXX-qemu-kvm-Mark-VCPU-state-dirty-on-creation.patch
+Patch107: kvm-qemu-preXX-net-fix-qemu_can_send_packet-logic.patch
+Patch108: kvm-qemu-preXX-hw-pcnet.c-Fix-EPROM-contents-to-suit-AMD-.patch
+Patch109: kvm-qemu-preXX-fix-linuxboot.bin-and-multiboot.bin-to-not.patch
+Patch110: kvm-qemu-preXX-Fix-performance-regression-in-qemu_get_ram.patch
+Patch111: kvm-qemu-preXX-kvm-Mark-VCPU-state-dirty-on-creation.patch
+Patch112: kvm-qemu-preXX-virtio-serial-don-t-crash-on-invalid-input.patch
+Patch113: kvm-qemu-preXX-e1000-multi-buffer-packet-support.patch
+Patch114: kvm-qemu-preXX-e1000-clear-EOP-for-multi-buffer-descripto.patch
+Patch115: kvm-qemu-preXX-e1000-verify-we-have-buffers-upfront.patch
+Patch116: kvm-qemu-preXX-e1000-fix-multi-descriptor-packet-checksum.patch
+Patch117: kvm-qemu-preXX-e1000-check-buffer-availability.patch
+Patch118: kvm-qemu-preXX-vnc-don-t-set-the-quality-if-lossy-encodin.patch
+Patch119: kvm-qemu-preXX-vnc-add-a-way-to-get-the-update-frequency-.patch
+Patch120: kvm-qemu-preXX-vnc-refresh-lossy-rect-after-a-given-timeo.patch
+Patch121: kvm-qemu-preXX-vnc-tight-use-the-update-frequency-to-choo.patch
+Patch122: kvm-qemu-preXX-vnc-palette-use-a-pool-to-reduce-memory-al.patch
+Patch123: kvm-qemu-preXX-vnc-palette-add-palette_init-calls.patch
+Patch124: kvm-qemu-preXX-vnc-palette-and-fill-and-color-calls.patch
+Patch125: kvm-qemu-preXX-vnc-Add-ZRLE-and-ZYWRLE-encodings.patch
+Patch126: kvm-qemu-preXX-vnc-fix-uint8_t-comparisons-with-negative-.patch
+Patch127: kvm-qemu-preXX-vnc-fix-lossy-rect-refreshing.patch
+Patch128: kvm-qemu-preXX-bitmap-add-a-generic-bitmap-and-bitops-lib.patch
+Patch129: kvm-qemu-preXX-ui-vnc-enc-tight.c-Fix-compile-failure-if-.patch
+Patch130: kvm-qemu-preXX-vnc-use-the-new-generic-bitmap-functions.patch
+Patch131: kvm-qemu-preXX-vnc-Fix-stack-corruption-and-other-bitmap-.patch
+Patch132: kvm-qemu-preXX-fix-vnc-regression.patch
+Patch133: kvm-qemu-preXX-vnc-fix-build-error-from-VNC_DIRTY_WORDS.patch
+Patch134: kvm-qemu-preXX-severe-memory-leak-caused-by-broken-palett.patch
+Patch135: kvm-qemu-no-hot-unplug-for-certain-devices.patch
Patch200: qemu-img-vmdk-scsi.patch
Patch201: kvm-studio-slirp-nooutgoing.patch
@@ -343,13 +337,6 @@
%patch133 -p1
%patch134 -p1
%patch135 -p1
-%patch136 -p1
-%patch137 -p1
-%patch138 -p1
-%patch139 -p1
-%patch140 -p1
-%patch141 -p1
-%patch142 -p1
# Studio addons
%patch200 -p1
@@ -420,9 +407,7 @@
--enable-kvm-pit \
--enable-kvm-device-assignment \
--disable-user \
-%if !%{with vde}
- --disable-vde \
-%endif
+ --enable-vde \
%if %{build_fw_from_source}
--disable-blobs \
%endif
++++++ kvm-qemu-no-hot-unplug-for-certain-devices.patch ++++++
Index: qemu-kvm-0.14.0/hw/acpi_piix4.c
===================================================================
--- qemu-kvm-0.14.0.orig/hw/acpi_piix4.c
+++ qemu-kvm-0.14.0/hw/acpi_piix4.c
@@ -605,11 +605,13 @@ static void pciej_write(void *opaque, ui
BusState *bus = opaque;
DeviceState *qdev, *next;
PCIDevice *dev;
+ PCIDeviceInfo *info;
int slot = ffs(val) - 1;
QLIST_FOREACH_SAFE(qdev, &bus->children, sibling, next) {
dev = DO_UPCAST(PCIDevice, qdev, qdev);
- if (PCI_SLOT(dev->devfn) == slot) {
+ info = container_of(qdev->info, PCIDeviceInfo, qdev);
+ if (PCI_SLOT(dev->devfn) == slot && !info->no_hotplug) {
qdev_free(qdev);
}
}
++++++ kvm-qemu-preXX-report-default-mac-used.patch ++++++
--- /var/tmp/diff_new_pack.IPzBmP/_old 2011-05-19 09:46:25.000000000 +0200
+++ /var/tmp/diff_new_pack.IPzBmP/_new 2011-05-19 09:46:25.000000000 +0200
@@ -1,7 +1,7 @@
-Index: qemu-kvm-0.14.0.rc0/net.c
+Index: qemu-kvm-0.14.1/net.c
===================================================================
---- qemu-kvm-0.14.0.rc0.orig/net.c
-+++ qemu-kvm-0.14.0.rc0/net.c
+--- qemu-kvm-0.14.1.orig/net.c
++++ qemu-kvm-0.14.1/net.c
@@ -173,6 +173,27 @@ void qemu_format_nic_info_str(VLANClient
macaddr[3], macaddr[4], macaddr[5]);
}
@@ -30,7 +30,7 @@
void qemu_macaddr_default_if_unset(MACAddr *macaddr)
{
static int index = 0;
-@@ -1413,6 +1434,7 @@ int net_init_clients(void)
+@@ -1417,6 +1438,7 @@ int net_init_clients(void)
if (qemu_opts_foreach(net, net_init_client, NULL, 1) == -1) {
return -1;
}
++++++ kvm-qemu-preXX-ui-vnc-enc-tight.c-Fix-compile-failure-if-.patch ++++++
--- /var/tmp/diff_new_pack.IPzBmP/_old 2011-05-19 09:46:25.000000000 +0200
+++ /var/tmp/diff_new_pack.IPzBmP/_new 2011-05-19 09:46:25.000000000 +0200
@@ -12,11 +12,11 @@
ui/vnc-enc-tight.c | 4 ++++
1 files changed, 4 insertions(+), 0 deletions(-)
-diff --git a/ui/vnc-enc-tight.c b/ui/vnc-enc-tight.c
-index 5933394..2522936 100644
---- a/ui/vnc-enc-tight.c
-+++ b/ui/vnc-enc-tight.c
-@@ -1536,8 +1536,10 @@ static int send_sub_rect(VncState *vs, int x, int y, int w, int h)
+Index: qemu-kvm-0.14.1/ui/vnc-enc-tight.c
+===================================================================
+--- qemu-kvm-0.14.1.orig/ui/vnc-enc-tight.c
++++ qemu-kvm-0.14.1/ui/vnc-enc-tight.c
+@@ -1537,8 +1537,10 @@ static int send_sub_rect(VncState *vs, i
uint32_t bg = 0, fg = 0;
int colors;
int ret = 0;
@@ -27,7 +27,7 @@
vnc_framebuffer_update(vs, x, y, w, h, vs->tight.type);
-@@ -1711,6 +1713,7 @@ static int tight_send_framebuffer_update(VncState *vs, int x, int y,
+@@ -1712,6 +1714,7 @@ static int tight_send_framebuffer_update
vs->tight.pixel24 = false;
}
@@ -35,7 +35,7 @@
if (vs->tight.quality != (uint8_t)-1) {
double freq = vnc_update_freq(vs, x, y, w, h);
-@@ -1718,6 +1721,7 @@ static int tight_send_framebuffer_update(VncState *vs, int x, int y,
+@@ -1719,6 +1722,7 @@ static int tight_send_framebuffer_update
return send_rect_simple(vs, x, y, w, h, false);
}
}
@@ -43,6 +43,3 @@
if (w * h < VNC_TIGHT_MIN_SPLIT_RECT_SIZE) {
return send_rect_simple(vs, x, y, w, h, true);
---
-1.6.0.2
-
++++++ kvm-qemu-preXX-vnc-fix-uint8_t-comparisons-with-negative-.patch ++++++
--- /var/tmp/diff_new_pack.IPzBmP/_old 2011-05-19 09:46:26.000000000 +0200
+++ /var/tmp/diff_new_pack.IPzBmP/_new 2011-05-19 09:46:26.000000000 +0200
@@ -10,11 +10,11 @@
ui/vnc-enc-zrle.c | 3 ++-
2 files changed, 4 insertions(+), 3 deletions(-)
-diff --git a/ui/vnc-enc-tight.c b/ui/vnc-enc-tight.c
-index ad9a9a8..81024d5 100644
---- a/ui/vnc-enc-tight.c
-+++ b/ui/vnc-enc-tight.c
-@@ -1546,7 +1546,7 @@ static int send_sub_rect(VncState *vs, int x, int y, int w, int h)
+Index: qemu-kvm-0.14.1/ui/vnc-enc-tight.c
+===================================================================
+--- qemu-kvm-0.14.1.orig/ui/vnc-enc-tight.c
++++ qemu-kvm-0.14.1/ui/vnc-enc-tight.c
+@@ -1547,7 +1547,7 @@ static int send_sub_rect(VncState *vs, i
vnc_tight_stop(vs);
#ifdef CONFIG_VNC_JPEG
@@ -23,7 +23,7 @@
double freq = vnc_update_freq(vs, x, y, w, h);
if (freq < tight_jpeg_conf[vs->tight.quality].jpeg_freq_min) {
-@@ -1711,7 +1711,7 @@ static int tight_send_framebuffer_update(VncState *vs, int x, int y,
+@@ -1712,7 +1712,7 @@ static int tight_send_framebuffer_update
vs->tight.pixel24 = false;
}
@@ -32,11 +32,11 @@
double freq = vnc_update_freq(vs, x, y, w, h);
if (freq > tight_jpeg_conf[vs->tight.quality].jpeg_freq_threshold) {
-diff --git a/ui/vnc-enc-zrle.c b/ui/vnc-enc-zrle.c
-index 016a406..917d384 100644
---- a/ui/vnc-enc-zrle.c
-+++ b/ui/vnc-enc-zrle.c
-@@ -260,7 +260,8 @@ static int zrle_send_framebuffer_update(VncState *vs, int x, int y,
+Index: qemu-kvm-0.14.1/ui/vnc-enc-zrle.c
+===================================================================
+--- qemu-kvm-0.14.1.orig/ui/vnc-enc-zrle.c
++++ qemu-kvm-0.14.1/ui/vnc-enc-zrle.c
+@@ -260,7 +260,8 @@ static int zrle_send_framebuffer_update(
int zywrle_level;
if (vs->zrle.type == VNC_ENCODING_ZYWRLE) {
@@ -46,6 +46,3 @@
zywrle_level = 0;
vs->zrle.type = VNC_ENCODING_ZRLE;
} else if (vs->tight.quality < 3) {
---
-1.6.0.2
-
++++++ kvm-qemu-preXX-vnc-tight-use-the-update-frequency-to-choo.patch ++++++
--- /var/tmp/diff_new_pack.IPzBmP/_old 2011-05-19 09:46:26.000000000 +0200
+++ /var/tmp/diff_new_pack.IPzBmP/_new 2011-05-19 09:46:26.000000000 +0200
@@ -12,10 +12,10 @@
ui/vnc-enc-tight.c | 75 +++++++++++++++++++++++++++++++++++++++++++---------
1 files changed, 62 insertions(+), 13 deletions(-)
-diff --git a/ui/vnc-enc-tight.c b/ui/vnc-enc-tight.c
-index af45edd..ad9a9a8 100644
---- a/ui/vnc-enc-tight.c
-+++ b/ui/vnc-enc-tight.c
+Index: qemu-kvm-0.14.1/ui/vnc-enc-tight.c
+===================================================================
+--- qemu-kvm-0.14.1.orig/ui/vnc-enc-tight.c
++++ qemu-kvm-0.14.1/ui/vnc-enc-tight.c
@@ -72,6 +72,26 @@ static const struct {
static int tight_send_framebuffer_update(VncState *vs, int x, int y,
int w, int h);
@@ -43,7 +43,7 @@
#ifdef CONFIG_VNC_PNG
static const struct {
int png_zlib_level, png_filters;
-@@ -1476,12 +1496,13 @@ static int send_sub_rect_nojpeg(VncState *vs, int x, int y, int w, int h,
+@@ -1477,12 +1497,13 @@ static int send_sub_rect_nojpeg(VncState
#ifdef CONFIG_VNC_JPEG
static int send_sub_rect_jpeg(VncState *vs, int x, int y, int w, int h,
int bg, int fg, int colors,
@@ -59,7 +59,7 @@
int quality = tight_conf[vs->tight.quality].jpeg_quality;
ret = send_jpeg_rect(vs, x, y, w, h, quality);
-@@ -1493,8 +1514,9 @@ static int send_sub_rect_jpeg(VncState *vs, int x, int y, int w, int h,
+@@ -1494,8 +1515,9 @@ static int send_sub_rect_jpeg(VncState *
} else if (colors == 2) {
ret = send_mono_rect(vs, x, y, w, h, bg, fg);
} else if (colors <= 256) {
@@ -71,7 +71,7 @@
int quality = tight_conf[vs->tight.quality].jpeg_quality;
ret = send_jpeg_rect(vs, x, y, w, h, quality);
-@@ -1514,6 +1536,8 @@ static int send_sub_rect(VncState *vs, int x, int y, int w, int h)
+@@ -1515,6 +1537,8 @@ static int send_sub_rect(VncState *vs, i
uint32_t bg = 0, fg = 0;
int colors;
int ret = 0;
@@ -80,7 +80,7 @@
vnc_framebuffer_update(vs, x, y, w, h, vs->tight.type);
-@@ -1521,11 +1545,26 @@ static int send_sub_rect(VncState *vs, int x, int y, int w, int h)
+@@ -1522,11 +1546,26 @@ static int send_sub_rect(VncState *vs, i
vnc_raw_send_framebuffer_update(vs, x, y, w, h);
vnc_tight_stop(vs);
@@ -109,7 +109,7 @@
} else {
ret = send_sub_rect_nojpeg(vs, x, y, w, h, bg, fg, colors, palette);
}
-@@ -1548,7 +1587,8 @@ static int send_sub_rect_solid(VncState *vs, int x, int y, int w, int h)
+@@ -1549,7 +1588,8 @@ static int send_sub_rect_solid(VncState
return send_solid_rect(vs);
}
@@ -119,7 +119,7 @@
{
int max_size, max_width;
int max_sub_width, max_sub_height;
-@@ -1559,7 +1599,7 @@ static int send_rect_simple(VncState *vs, int x, int y, int w, int h)
+@@ -1560,7 +1600,7 @@ static int send_rect_simple(VncState *vs
max_size = tight_conf[vs->tight.compression].max_rect_size;
max_width = tight_conf[vs->tight.compression].max_rect_width;
@@ -128,7 +128,7 @@
max_sub_width = (w > max_width) ? max_width : w;
max_sub_height = max_size / max_sub_width;
-@@ -1590,7 +1630,7 @@ static int find_large_solid_color_rect(VncState *vs, int x, int y,
+@@ -1591,7 +1631,7 @@ static int find_large_solid_color_rect(V
/* If a rectangle becomes too large, send its upper part now. */
if (dy - y >= max_rows) {
@@ -137,7 +137,7 @@
y += max_rows;
h -= max_rows;
}
-@@ -1629,7 +1669,7 @@ static int find_large_solid_color_rect(VncState *vs, int x, int y,
+@@ -1630,7 +1670,7 @@ static int find_large_solid_color_rect(V
/* Send rectangles at top and left to solid-color area. */
if (y_best != y) {
@@ -146,7 +146,7 @@
}
if (x_best != x) {
n += tight_send_framebuffer_update(vs, x, y_best,
-@@ -1656,7 +1696,7 @@ static int find_large_solid_color_rect(VncState *vs, int x, int y,
+@@ -1657,7 +1697,7 @@ static int find_large_solid_color_rect(V
return n;
}
}
@@ -155,7 +155,7 @@
}
static int tight_send_framebuffer_update(VncState *vs, int x, int y,
-@@ -1671,8 +1711,17 @@ static int tight_send_framebuffer_update(VncState *vs, int x, int y,
+@@ -1672,8 +1712,17 @@ static int tight_send_framebuffer_update
vs->tight.pixel24 = false;
}
@@ -175,6 +175,3 @@
/* Calculate maximum number of rows in one non-solid rectangle. */
---
-1.6.0.2
-
++++++ kvm-seabios-gcc46-fixes.patch ++++++
--- /var/tmp/diff_new_pack.IPzBmP/_old 2011-05-19 09:46:26.000000000 +0200
+++ /var/tmp/diff_new_pack.IPzBmP/_new 2011-05-19 09:46:26.000000000 +0200
@@ -9,9 +9,9 @@
- UREG(edi, di, di_hi, di_lo);
- UREG(esi, si, si_hi, si_lo);
- UREG(ebp, bp, bp_hi, bp_lo);
-+ UREG(edi, di, di_HI, di_LO);
-+ UREG(esi, si, si_HI, si_LO);
-+ UREG(ebp, bp, bp_HI, bp_LO);
++ UREG(edi, di, di8u, di8l);
++ UREG(esi, si, si8u, si8l);
++ UREG(ebp, bp, bp8u, bp8l);
UREG(ebx, bx, bh, bl);
UREG(edx, dx, dh, dl);
UREG(ecx, cx, ch, cl);
++++++ kvm-studio-slirp-nooutgoing.patch ++++++
--- /var/tmp/diff_new_pack.IPzBmP/_old 2011-05-19 09:46:26.000000000 +0200
+++ /var/tmp/diff_new_pack.IPzBmP/_new 2011-05-19 09:46:26.000000000 +0200
@@ -1,7 +1,7 @@
-Index: qemu-kvm-0.14.0/vl.c
+Index: qemu-kvm-0.14.1/vl.c
===================================================================
---- qemu-kvm-0.14.0.orig/vl.c
-+++ qemu-kvm-0.14.0/vl.c
+--- qemu-kvm-0.14.1.orig/vl.c
++++ qemu-kvm-0.14.1/vl.c
@@ -213,6 +213,7 @@ const char *vnc_display;
int acpi_enabled = 1;
int no_hpet = 0;
@@ -10,7 +10,7 @@
int no_reboot = 0;
int no_shutdown = 0;
int cursor_hide = 1;
-@@ -2340,6 +2341,14 @@ int main(int argc, char **argv, char **e
+@@ -2341,6 +2342,14 @@ int main(int argc, char **argv, char **e
case QEMU_OPTION_singlestep:
singlestep = 1;
break;
@@ -25,10 +25,10 @@
case QEMU_OPTION_S:
autostart = 0;
break;
-Index: qemu-kvm-0.14.0/slirp/tcp_subr.c
+Index: qemu-kvm-0.14.1/slirp/tcp_subr.c
===================================================================
---- qemu-kvm-0.14.0.orig/slirp/tcp_subr.c
-+++ qemu-kvm-0.14.0/slirp/tcp_subr.c
+--- qemu-kvm-0.14.1.orig/slirp/tcp_subr.c
++++ qemu-kvm-0.14.1/slirp/tcp_subr.c
@@ -317,6 +317,9 @@ tcp_sockclosed(struct tcpcb *tp)
* nonblocking. Connect returns after the SYN is sent, and does
* not wait for ACK+SYN.
@@ -73,10 +73,10 @@
/* Translate connections from localhost to the real hostname */
if (so->so_faddr.s_addr == 0 || so->so_faddr.s_addr == loopback_addr.s_addr)
so->so_faddr = slirp->vhost_addr;
-Index: qemu-kvm-0.14.0/slirp/socket.c
+Index: qemu-kvm-0.14.1/slirp/socket.c
===================================================================
---- qemu-kvm-0.14.0.orig/slirp/socket.c
-+++ qemu-kvm-0.14.0/slirp/socket.c
+--- qemu-kvm-0.14.1.orig/slirp/socket.c
++++ qemu-kvm-0.14.1/slirp/socket.c
@@ -529,6 +529,8 @@ sorecvfrom(struct socket *so)
} /* if ping packet */
}
@@ -99,10 +99,10 @@
/* Don't care what port we get */
ret = sendto(so->s, m->m_data, m->m_len, 0,
(struct sockaddr *)&addr, sizeof (struct sockaddr));
-Index: qemu-kvm-0.14.0/qemu-options.hx
+Index: qemu-kvm-0.14.1/qemu-options.hx
===================================================================
---- qemu-kvm-0.14.0.orig/qemu-options.hx
-+++ qemu-kvm-0.14.0/qemu-options.hx
+--- qemu-kvm-0.14.1.orig/qemu-options.hx
++++ qemu-kvm-0.14.1/qemu-options.hx
@@ -1913,6 +1913,16 @@ Store the QEMU process PID in @var{file}
from a script.
ETEXI
++++++ qemu-img-vmdk-scsi.patch ++++++
--- /var/tmp/diff_new_pack.IPzBmP/_old 2011-05-19 09:46:26.000000000 +0200
+++ /var/tmp/diff_new_pack.IPzBmP/_new 2011-05-19 09:46:26.000000000 +0200
@@ -13,11 +13,11 @@
qemu-img.c | 8 +++++++-
4 files changed, 18 insertions(+), 4 deletions(-)
-Index: qemu-kvm-0.14.0/block.c
+Index: qemu-kvm-0.14.1/block.c
===================================================================
---- qemu-kvm-0.14.0.orig/block.c
-+++ qemu-kvm-0.14.0/block.c
-@@ -2800,7 +2800,7 @@ int bdrv_img_create(const char *filename
+--- qemu-kvm-0.14.1.orig/block.c
++++ qemu-kvm-0.14.1/block.c
+@@ -2808,7 +2808,7 @@ int bdrv_img_create(const char *filename
char *options, uint64_t img_size, int flags)
{
QEMUOptionParameter *param = NULL, *create_options = NULL;
@@ -26,7 +26,7 @@
BlockDriverState *bs = NULL;
BlockDriver *drv, *proto_drv;
BlockDriver *backing_drv = NULL;
-@@ -2909,6 +2909,9 @@ int bdrv_img_create(const char *filename
+@@ -2917,6 +2917,9 @@ int bdrv_img_create(const char *filename
printf("Formatting '%s', fmt=%s ", filename, fmt);
print_option_parameters(param);
@@ -36,10 +36,10 @@
puts("");
ret = bdrv_create(drv, filename, param);
-Index: qemu-kvm-0.14.0/block/vmdk.c
+Index: qemu-kvm-0.14.1/block/vmdk.c
===================================================================
---- qemu-kvm-0.14.0.orig/block/vmdk.c
-+++ qemu-kvm-0.14.0/block/vmdk.c
+--- qemu-kvm-0.14.1.orig/block/vmdk.c
++++ qemu-kvm-0.14.1/block/vmdk.c
@@ -685,7 +685,7 @@ static int vmdk_create(const char *filen
"ddb.geometry.cylinders = \"%" PRId64 "\"\n"
"ddb.geometry.heads = \"16\"\n"
@@ -80,10 +80,10 @@
{ NULL }
};
-Index: qemu-kvm-0.14.0/block_int.h
+Index: qemu-kvm-0.14.1/block_int.h
===================================================================
---- qemu-kvm-0.14.0.orig/block_int.h
-+++ qemu-kvm-0.14.0/block_int.h
+--- qemu-kvm-0.14.1.orig/block_int.h
++++ qemu-kvm-0.14.1/block_int.h
@@ -30,10 +30,12 @@
#define BLOCK_FLAG_ENCRYPT 1
@@ -97,10 +97,10 @@
#define BLOCK_OPT_BACKING_FILE "backing_file"
#define BLOCK_OPT_BACKING_FMT "backing_fmt"
#define BLOCK_OPT_CLUSTER_SIZE "cluster_size"
-Index: qemu-kvm-0.14.0/qemu-img.c
+Index: qemu-kvm-0.14.1/qemu-img.c
===================================================================
---- qemu-kvm-0.14.0.orig/qemu-img.c
-+++ qemu-kvm-0.14.0/qemu-img.c
+--- qemu-kvm-0.14.1.orig/qemu-img.c
++++ qemu-kvm-0.14.1/qemu-img.c
@@ -576,7 +576,7 @@ static int img_convert(int argc, char **
const uint8_t *buf1;
BlockDriverInfo bdi;
++++++ qemu-kvm-0.14.0.tar.bz2 -> qemu-kvm-0.14.1.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qemu-kvm-0.14.0/EXTERNAL_DEPENDENCIES new/qemu-kvm-0.14.1/EXTERNAL_DEPENDENCIES
--- old/qemu-kvm-0.14.0/EXTERNAL_DEPENDENCIES 2011-02-22 14:34:38.000000000 +0100
+++ new/qemu-kvm-0.14.1/EXTERNAL_DEPENDENCIES 1970-01-01 01:00:00.000000000 +0100
@@ -1,2 +0,0 @@
-seabios 06d0bdd9e2e20377b3180e4986b14c8549b393e4
-vgabios ca056d8e77a534f4f90548bc8cee166a378c1454
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qemu-kvm-0.14.0/KVM_VERSION new/qemu-kvm-0.14.1/KVM_VERSION
--- old/qemu-kvm-0.14.0/KVM_VERSION 2011-02-22 14:34:38.000000000 +0100
+++ new/qemu-kvm-0.14.1/KVM_VERSION 1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-qemu-kvm-0.14.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qemu-kvm-0.14.0/Makefile.target new/qemu-kvm-0.14.1/Makefile.target
--- old/qemu-kvm-0.14.0/Makefile.target 2011-02-22 14:34:38.000000000 +0100
+++ new/qemu-kvm-0.14.1/Makefile.target 2011-05-11 15:29:46.000000000 +0200
@@ -195,10 +195,11 @@
# System emulator target
ifdef CONFIG_SOFTMMU
-obj-y = arch_init.o cpus.o monitor.o pci.o machine.o gdbstub.o vl.o balloon.o
+obj-y = arch_init.o cpus.o monitor.o machine.o gdbstub.o vl.o balloon.o
# virtio has to be here due to weird dependency between PCI and virtio-net.
# need to fix this properly
obj-$(CONFIG_NO_PCI) += pci-stub.o
+obj-$(CONFIG_PCI) += pci.o
obj-$(CONFIG_VIRTIO) += virtio-blk.o virtio-balloon.o virtio-net.o virtio-serial-bus.o
obj-$(CONFIG_VIRTIO_PCI) += virtio-pci.o
obj-y += vhost_net.o
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qemu-kvm-0.14.0/VERSION new/qemu-kvm-0.14.1/VERSION
--- old/qemu-kvm-0.14.0/VERSION 2011-02-22 14:34:38.000000000 +0100
+++ new/qemu-kvm-0.14.1/VERSION 2011-05-11 15:29:46.000000000 +0200
@@ -1 +1 @@
-0.14.0
+0.14.1
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qemu-kvm-0.14.0/block/qed-check.c new/qemu-kvm-0.14.1/block/qed-check.c
--- old/qemu-kvm-0.14.0/block/qed-check.c 2011-02-22 14:34:38.000000000 +0100
+++ new/qemu-kvm-0.14.1/block/qed-check.c 2011-05-11 15:29:46.000000000 +0200
@@ -18,7 +18,7 @@
BdrvCheckResult *result;
bool fix; /* whether to fix invalid offsets */
- size_t nclusters;
+ uint64_t nclusters;
uint32_t *used_clusters; /* referenced cluster bitmap */
QEDRequest request;
@@ -176,7 +176,7 @@
static void qed_check_for_leaks(QEDCheck *check)
{
BDRVQEDState *s = check->s;
- size_t i;
+ uint64_t i;
for (i = s->header.header_size; i < check->nclusters; i++) {
if (!qed_test_bit(check->used_clusters, i)) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qemu-kvm-0.14.0/block/qed.h new/qemu-kvm-0.14.1/block/qed.h
--- old/qemu-kvm-0.14.0/block/qed.h 2011-02-22 14:34:38.000000000 +0100
+++ new/qemu-kvm-0.14.1/block/qed.h 2011-05-11 15:29:46.000000000 +0200
@@ -251,7 +251,7 @@
return offset & (s->header.cluster_size - 1);
}
-static inline unsigned int qed_bytes_to_clusters(BDRVQEDState *s, size_t bytes)
+static inline uint64_t qed_bytes_to_clusters(BDRVQEDState *s, uint64_t bytes)
{
return qed_start_of_cluster(s, bytes + (s->header.cluster_size - 1)) /
(s->header.cluster_size - 1);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qemu-kvm-0.14.0/block.c new/qemu-kvm-0.14.1/block.c
--- old/qemu-kvm-0.14.0/block.c 2011-02-22 14:34:38.000000000 +0100
+++ new/qemu-kvm-0.14.1/block.c 2011-05-11 15:29:46.000000000 +0200
@@ -697,14 +697,22 @@
}
}
+/* make a BlockDriverState anonymous by removing from bdrv_state list.
+ Also, NULL terminate the device_name to prevent double remove */
+void bdrv_make_anon(BlockDriverState *bs)
+{
+ if (bs->device_name[0] != '\0') {
+ QTAILQ_REMOVE(&bdrv_states, bs, list);
+ }
+ bs->device_name[0] = '\0';
+}
+
void bdrv_delete(BlockDriverState *bs)
{
assert(!bs->peer);
/* remove from list, if necessary */
- if (bs->device_name[0] != '\0') {
- QTAILQ_REMOVE(&bdrv_states, bs, list);
- }
+ bdrv_make_anon(bs);
bdrv_close(bs);
if (bs->file != NULL) {
@@ -2295,6 +2303,14 @@
MultiwriteCB *mcb;
int i;
+ /* don't submit writes if we don't have a medium */
+ if (bs->drv == NULL) {
+ for (i = 0; i < num_reqs; i++) {
+ reqs[i].error = -ENOMEDIUM;
+ }
+ return -1;
+ }
+
if (num_reqs == 0) {
return 0;
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qemu-kvm-0.14.0/block.h new/qemu-kvm-0.14.1/block.h
--- old/qemu-kvm-0.14.0/block.h 2011-02-22 14:34:38.000000000 +0100
+++ new/qemu-kvm-0.14.1/block.h 2011-05-11 15:29:46.000000000 +0200
@@ -66,6 +66,7 @@
QEMUOptionParameter *options);
int bdrv_create_file(const char* filename, QEMUOptionParameter *options);
BlockDriverState *bdrv_new(const char *device_name);
+void bdrv_make_anon(BlockDriverState *bs);
void bdrv_delete(BlockDriverState *bs);
int bdrv_file_open(BlockDriverState **pbs, const char *filename, int flags);
int bdrv_open(BlockDriverState *bs, const char *filename, int flags,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qemu-kvm-0.14.0/blockdev.c new/qemu-kvm-0.14.1/blockdev.c
--- old/qemu-kvm-0.14.0/blockdev.c 2011-02-22 14:34:38.000000000 +0100
+++ new/qemu-kvm-0.14.1/blockdev.c 2011-05-11 15:29:46.000000000 +0200
@@ -739,8 +739,6 @@
{
const char *id = qdict_get_str(qdict, "id");
BlockDriverState *bs;
- BlockDriverState **ptr;
- Property *prop;
bs = bdrv_find(id);
if (!bs) {
@@ -757,24 +755,17 @@
bdrv_flush(bs);
bdrv_close(bs);
- /* clean up guest state from pointing to host resource by
- * finding and removing DeviceState "drive" property */
+ /* if we have a device associated with this BlockDriverState (bs->peer)
+ * then we need to make the drive anonymous until the device
+ * can be removed. If this is a drive with no device backing
+ * then we can just get rid of the block driver state right here.
+ */
if (bs->peer) {
- for (prop = bs->peer->info->props; prop && prop->name; prop++) {
- if (prop->info->type == PROP_TYPE_DRIVE) {
- ptr = qdev_get_prop_ptr(bs->peer, prop);
- if (*ptr == bs) {
- bdrv_detach(bs, bs->peer);
- *ptr = NULL;
- break;
- }
- }
- }
+ bdrv_make_anon(bs);
+ } else {
+ drive_uninit(drive_get_by_blockdev(bs));
}
- /* clean up host side */
- drive_uninit(drive_get_by_blockdev(bs));
-
return 0;
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qemu-kvm-0.14.0/configure new/qemu-kvm-0.14.1/configure
--- old/qemu-kvm-0.14.0/configure 2011-02-22 14:34:38.000000000 +0100
+++ new/qemu-kvm-0.14.1/configure 2011-05-11 15:29:46.000000000 +0200
@@ -1916,7 +1916,7 @@
#include