diff --git a/.gitignore b/.gitignore index a119815..db00fa6 100644 --- a/.gitignore +++ b/.gitignore @@ -24,3 +24,4 @@ qemu-kvm-0.13.0-25fdf4a.tar.gz /qemu-1.5.2.tar.bz2 /qemu-1.6.0.tar.bz2 /qemu-1.6.1.tar.bz2 +/qemu-1.6.2.tar.bz2 diff --git a/0001-Fix-migration-from-qemu-kvm.patch b/0001-Fix-migration-from-qemu-kvm.patch index a263329..ab8eeba 100644 --- a/0001-Fix-migration-from-qemu-kvm.patch +++ b/0001-Fix-migration-from-qemu-kvm.patch @@ -1,4 +1,4 @@ -From 2196426a9b081cb99f4bdefb854aaa206bdd0392 Mon Sep 17 00:00:00 2001 +From 2ad13e88a15c892d2732467bf8b8a6656c521c09 Mon Sep 17 00:00:00 2001 From: Cole Robinson Date: Fri, 16 Aug 2013 12:14:51 -0400 Subject: [PATCH] Fix migration from qemu-kvm diff --git a/0002-isapc-disable-kvmvapic.patch b/0002-isapc-disable-kvmvapic.patch index 4adf992..c18f492 100644 --- a/0002-isapc-disable-kvmvapic.patch +++ b/0002-isapc-disable-kvmvapic.patch @@ -1,4 +1,4 @@ -From 85a924af30f31a4f701ee6f18d84dd27aa02f47b Mon Sep 17 00:00:00 2001 +From ff175461008f3f782c8976b8ad898120b88bc846 Mon Sep 17 00:00:00 2001 From: Paolo Bonzini Date: Tue, 13 Aug 2013 00:02:18 +0200 Subject: [PATCH] isapc: disable kvmvapic diff --git a/0003-pci-do-not-export-pci_bus_reset.patch b/0003-pci-do-not-export-pci_bus_reset.patch index 21c6cef..122b270 100644 --- a/0003-pci-do-not-export-pci_bus_reset.patch +++ b/0003-pci-do-not-export-pci_bus_reset.patch @@ -1,4 +1,4 @@ -From 07873f45017c04994496d8dc3f7acb60358bba49 Mon Sep 17 00:00:00 2001 +From a995edb5118fb249619444dbb3218e461f661286 Mon Sep 17 00:00:00 2001 From: Paolo Bonzini Date: Thu, 2 May 2013 11:38:37 +0200 Subject: [PATCH] pci: do not export pci_bus_reset @@ -19,10 +19,10 @@ Signed-off-by: Paolo Bonzini 3 files changed, 3 insertions(+), 8 deletions(-) diff --git a/hw/pci/pci.c b/hw/pci/pci.c -index 4c004f5..0389375 100644 +index dc5b788..3a0c4a7 100644 --- a/hw/pci/pci.c +++ b/hw/pci/pci.c -@@ -210,8 +210,9 @@ void pci_device_reset(PCIDevice *dev) +@@ -212,8 +212,9 @@ void pci_device_reset(PCIDevice *dev) * Trigger pci bus reset under a given bus. * To be called on RST# assert. */ @@ -33,7 +33,7 @@ index 4c004f5..0389375 100644 int i; for (i = 0; i < bus->nirq; i++) { -@@ -222,11 +223,6 @@ void pci_bus_reset(PCIBus *bus) +@@ -224,11 +225,6 @@ void pci_bus_reset(PCIBus *bus) pci_device_reset(bus->devices[i]); } } diff --git a/0004-qdev-allow-both-pre-and-post-order-vists-in-qdev-wal.patch b/0004-qdev-allow-both-pre-and-post-order-vists-in-qdev-wal.patch index 8580f62..a6f24b8 100644 --- a/0004-qdev-allow-both-pre-and-post-order-vists-in-qdev-wal.patch +++ b/0004-qdev-allow-both-pre-and-post-order-vists-in-qdev-wal.patch @@ -1,4 +1,4 @@ -From cf09bc533d82f2b16d1e9f4888c1afd977ca256d Mon Sep 17 00:00:00 2001 +From eb42e0f25a3fc432443a0e9287968cfa5268f25f Mon Sep 17 00:00:00 2001 From: Paolo Bonzini Date: Thu, 2 May 2013 11:38:38 +0200 Subject: [PATCH] qdev: allow both pre- and post-order vists in qdev walking diff --git a/0005-qdev-switch-reset-to-post-order.patch b/0005-qdev-switch-reset-to-post-order.patch index 2f533e5..0f2c1ed 100644 --- a/0005-qdev-switch-reset-to-post-order.patch +++ b/0005-qdev-switch-reset-to-post-order.patch @@ -1,4 +1,4 @@ -From 41a2077cea8ce006dbef885bcb0778af05a0b159 Mon Sep 17 00:00:00 2001 +From 6158b4394ba67d1f488cb743ec3f4acb06c270e4 Mon Sep 17 00:00:00 2001 From: Paolo Bonzini Date: Thu, 2 May 2013 11:38:39 +0200 Subject: [PATCH] qdev: switch reset to post-order @@ -59,7 +59,7 @@ index 842804f..87d7e1e 100644 void qbus_reset_all_fn(void *opaque) diff --git a/hw/pci/pci.c b/hw/pci/pci.c -index 0389375..bbca696 100644 +index 3a0c4a7..129cdb7 100644 --- a/hw/pci/pci.c +++ b/hw/pci/pci.c @@ -46,7 +46,7 @@ @@ -68,10 +68,10 @@ index 0389375..bbca696 100644 static char *pcibus_get_fw_dev_path(DeviceState *dev); -static int pcibus_reset(BusState *qbus); +static void pcibus_reset(BusState *qbus); + static void pci_bus_finalize(Object *obj); static Property pci_props[] = { - DEFINE_PROP_PCI_DEVFN("addr", PCIDevice, devfn, -1), -@@ -165,16 +165,10 @@ void pci_device_deassert_intx(PCIDevice *dev) +@@ -167,16 +167,10 @@ void pci_device_deassert_intx(PCIDevice *dev) } } @@ -89,7 +89,7 @@ index 0389375..bbca696 100644 dev->irq_state = 0; pci_update_irq_status(dev); pci_device_deassert_intx(dev); -@@ -207,10 +201,21 @@ void pci_device_reset(PCIDevice *dev) +@@ -209,10 +203,21 @@ void pci_device_reset(PCIDevice *dev) } /* @@ -113,7 +113,7 @@ index 0389375..bbca696 100644 { PCIBus *bus = DO_UPCAST(PCIBus, qbus, qbus); int i; -@@ -220,13 +225,9 @@ static int pcibus_reset(BusState *qbus) +@@ -222,13 +227,9 @@ static int pcibus_reset(BusState *qbus) } for (i = 0; i < ARRAY_SIZE(bus->devices); ++i) { if (bus->devices[i]) { diff --git a/0006-virtio-bus-remove-vdev-field.patch b/0006-virtio-bus-remove-vdev-field.patch index 617326f..416507c 100644 --- a/0006-virtio-bus-remove-vdev-field.patch +++ b/0006-virtio-bus-remove-vdev-field.patch @@ -1,4 +1,4 @@ -From ed35f9edcc420b4f8c1f909bc7cfb002a54f437b Mon Sep 17 00:00:00 2001 +From 07742515412e1240bcc3dc2a7b335839862583d4 Mon Sep 17 00:00:00 2001 From: Paolo Bonzini Date: Fri, 20 Sep 2013 16:57:50 +0200 Subject: [PATCH] virtio-bus: remove vdev field diff --git a/0007-virtio-pci-remove-vdev-field.patch b/0007-virtio-pci-remove-vdev-field.patch index f8000e7..e727be3 100644 --- a/0007-virtio-pci-remove-vdev-field.patch +++ b/0007-virtio-pci-remove-vdev-field.patch @@ -1,4 +1,4 @@ -From 1d388b4fda2c4c9d00dc6ae91aaf35eb9fc04c26 Mon Sep 17 00:00:00 2001 +From b8715ac95b5f0d1bf75b072bb245d7b041fe8ca9 Mon Sep 17 00:00:00 2001 From: Paolo Bonzini Date: Fri, 20 Sep 2013 16:57:51 +0200 Subject: [PATCH] virtio-pci: remove vdev field diff --git a/0008-virtio-ccw-remove-vdev-field.patch b/0008-virtio-ccw-remove-vdev-field.patch index d0c8d62..98d7475 100644 --- a/0008-virtio-ccw-remove-vdev-field.patch +++ b/0008-virtio-ccw-remove-vdev-field.patch @@ -1,4 +1,4 @@ -From a9b1f1aeba8167ae90aecea9b8ca223faf33ae90 Mon Sep 17 00:00:00 2001 +From cb4b225256c2c12eaf0b53c6633c38ac7ad9561d Mon Sep 17 00:00:00 2001 From: Paolo Bonzini Date: Fri, 20 Sep 2013 16:57:52 +0200 Subject: [PATCH] virtio-ccw: remove vdev field diff --git a/0009-virtio-bus-cleanup-plug-unplug-interface.patch b/0009-virtio-bus-cleanup-plug-unplug-interface.patch index b8a91f4..dfe8698 100644 --- a/0009-virtio-bus-cleanup-plug-unplug-interface.patch +++ b/0009-virtio-bus-cleanup-plug-unplug-interface.patch @@ -1,4 +1,4 @@ -From fe02fcc2b929e6a678ec783cb80890b79b7dca78 Mon Sep 17 00:00:00 2001 +From f547bed0159d3da84b66d8f6462642d79cced064 Mon Sep 17 00:00:00 2001 From: Paolo Bonzini Date: Fri, 20 Sep 2013 16:57:53 +0200 Subject: [PATCH] virtio-bus: cleanup plug/unplug interface diff --git a/0010-virtio-blk-switch-exit-callback-to-VirtioDeviceClass.patch b/0010-virtio-blk-switch-exit-callback-to-VirtioDeviceClass.patch index 57c2353..8de1b99 100644 --- a/0010-virtio-blk-switch-exit-callback-to-VirtioDeviceClass.patch +++ b/0010-virtio-blk-switch-exit-callback-to-VirtioDeviceClass.patch @@ -1,4 +1,4 @@ -From aa75555e6fb5cae0e495cb5f7d9f3511ad5ac6ce Mon Sep 17 00:00:00 2001 +From f670d1a035292e1765ececcc72ef3343351f4af0 Mon Sep 17 00:00:00 2001 From: Paolo Bonzini Date: Fri, 20 Sep 2013 16:57:54 +0200 Subject: [PATCH] virtio-blk: switch exit callback to VirtioDeviceClass diff --git a/0011-virtio-serial-switch-exit-callback-to-VirtioDeviceCl.patch b/0011-virtio-serial-switch-exit-callback-to-VirtioDeviceCl.patch index 86e48e4..86b16b3 100644 --- a/0011-virtio-serial-switch-exit-callback-to-VirtioDeviceCl.patch +++ b/0011-virtio-serial-switch-exit-callback-to-VirtioDeviceCl.patch @@ -1,4 +1,4 @@ -From 811b51426d9e7819e6498d4dad0d6ac744a8e5d0 Mon Sep 17 00:00:00 2001 +From 77d6cf9ef41cd7d01a8ca4ed9c36876da1043ca3 Mon Sep 17 00:00:00 2001 From: Paolo Bonzini Date: Fri, 20 Sep 2013 16:57:55 +0200 Subject: [PATCH] virtio-serial: switch exit callback to VirtioDeviceClass diff --git a/0012-virtio-net-switch-exit-callback-to-VirtioDeviceClass.patch b/0012-virtio-net-switch-exit-callback-to-VirtioDeviceClass.patch index 4bd6ede..832f9f4 100644 --- a/0012-virtio-net-switch-exit-callback-to-VirtioDeviceClass.patch +++ b/0012-virtio-net-switch-exit-callback-to-VirtioDeviceClass.patch @@ -1,4 +1,4 @@ -From 1582699fb9f748f9f91b015ef311f93bf5a95f5d Mon Sep 17 00:00:00 2001 +From 741a5a10161b87fbf324f13a4c8d7d0c1563e98b Mon Sep 17 00:00:00 2001 From: Paolo Bonzini Date: Fri, 20 Sep 2013 16:57:56 +0200 Subject: [PATCH] virtio-net: switch exit callback to VirtioDeviceClass @@ -12,7 +12,7 @@ Signed-off-by: Paolo Bonzini 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/hw/net/virtio-net.c b/hw/net/virtio-net.c -index aa1880c..46a4d8c 100644 +index 5320aab..060b900 100644 --- a/hw/net/virtio-net.c +++ b/hw/net/virtio-net.c @@ -1568,16 +1568,15 @@ static int virtio_net_device_init(VirtIODevice *vdev) diff --git a/0013-virtio-scsi-switch-exit-callback-to-VirtioDeviceClas.patch b/0013-virtio-scsi-switch-exit-callback-to-VirtioDeviceClas.patch index e654a87..c2d0030 100644 --- a/0013-virtio-scsi-switch-exit-callback-to-VirtioDeviceClas.patch +++ b/0013-virtio-scsi-switch-exit-callback-to-VirtioDeviceClas.patch @@ -1,4 +1,4 @@ -From df750f462929ba85a61dbdd6a4020cb4b2ee68d0 Mon Sep 17 00:00:00 2001 +From 05677a87c77c56eb96e3e0b6842cc5d9a8ea48b1 Mon Sep 17 00:00:00 2001 From: Paolo Bonzini Date: Fri, 20 Sep 2013 16:57:57 +0200 Subject: [PATCH] virtio-scsi: switch exit callback to VirtioDeviceClass diff --git a/0014-virtio-balloon-switch-exit-callback-to-VirtioDeviceC.patch b/0014-virtio-balloon-switch-exit-callback-to-VirtioDeviceC.patch index 5c921d1..65a5b99 100644 --- a/0014-virtio-balloon-switch-exit-callback-to-VirtioDeviceC.patch +++ b/0014-virtio-balloon-switch-exit-callback-to-VirtioDeviceC.patch @@ -1,4 +1,4 @@ -From d42ac36363ef9e3d3963c2c31fa7122492dbaf0e Mon Sep 17 00:00:00 2001 +From 7805e853dfda059e3524cb564aef623a1a6aa6ef Mon Sep 17 00:00:00 2001 From: Paolo Bonzini Date: Fri, 20 Sep 2013 16:57:58 +0200 Subject: [PATCH] virtio-balloon: switch exit callback to VirtioDeviceClass diff --git a/0015-virtio-rng-switch-exit-callback-to-VirtioDeviceClass.patch b/0015-virtio-rng-switch-exit-callback-to-VirtioDeviceClass.patch index 6c54e1b..73c9392 100644 --- a/0015-virtio-rng-switch-exit-callback-to-VirtioDeviceClass.patch +++ b/0015-virtio-rng-switch-exit-callback-to-VirtioDeviceClass.patch @@ -1,4 +1,4 @@ -From 2bb10b85ffa655f91a4777da4f7a5534ee4c266c Mon Sep 17 00:00:00 2001 +From d1c9d98ee0e4128337f63649895994a7867312c0 Mon Sep 17 00:00:00 2001 From: Paolo Bonzini Date: Fri, 20 Sep 2013 16:57:59 +0200 Subject: [PATCH] virtio-rng: switch exit callback to VirtioDeviceClass diff --git a/0016-virtio-pci-add-device_unplugged-callback.patch b/0016-virtio-pci-add-device_unplugged-callback.patch index e96fc3b..7ef1a2e 100644 --- a/0016-virtio-pci-add-device_unplugged-callback.patch +++ b/0016-virtio-pci-add-device_unplugged-callback.patch @@ -1,4 +1,4 @@ -From cb2282d55ee34d04a67d74111d69ab098f765680 Mon Sep 17 00:00:00 2001 +From 555fd6699a04882775fc964830fea2447e0fa905 Mon Sep 17 00:00:00 2001 From: Paolo Bonzini Date: Fri, 20 Sep 2013 16:58:00 +0200 Subject: [PATCH] virtio-pci: add device_unplugged callback diff --git a/0101-qcow2-Pass-discard-type-to-qcow2_discard_clusters.patch b/0101-qcow2-Pass-discard-type-to-qcow2_discard_clusters.patch index b31f925..b8ecbec 100644 --- a/0101-qcow2-Pass-discard-type-to-qcow2_discard_clusters.patch +++ b/0101-qcow2-Pass-discard-type-to-qcow2_discard_clusters.patch @@ -1,4 +1,4 @@ -From 411a7e4ad457f7f3c9f1d02ef9f726ce13a35f08 Mon Sep 17 00:00:00 2001 +From 9faa24bdebcab5861acfa9fe390997d1eb319219 Mon Sep 17 00:00:00 2001 From: Kevin Wolf Date: Fri, 6 Sep 2013 12:32:25 +0200 Subject: [PATCH] qcow2: Pass discard type to qcow2_discard_clusters() @@ -14,10 +14,10 @@ Signed-off-by: Kevin Wolf 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/block/qcow2-cluster.c b/block/qcow2-cluster.c -index cca76d4..8c3185d 100644 +index b558eb0..09abbf0 100644 --- a/block/qcow2-cluster.c +++ b/block/qcow2-cluster.c -@@ -1317,7 +1317,7 @@ int qcow2_decompress_cluster(BlockDriverState *bs, uint64_t cluster_offset) +@@ -1320,7 +1320,7 @@ int qcow2_decompress_cluster(BlockDriverState *bs, uint64_t cluster_offset) * clusters. */ static int discard_single_l2(BlockDriverState *bs, uint64_t offset, @@ -26,7 +26,7 @@ index cca76d4..8c3185d 100644 { BDRVQcowState *s = bs->opaque; uint64_t *l2_table; -@@ -1346,7 +1346,7 @@ static int discard_single_l2(BlockDriverState *bs, uint64_t offset, +@@ -1349,7 +1349,7 @@ static int discard_single_l2(BlockDriverState *bs, uint64_t offset, l2_table[l2_index + i] = cpu_to_be64(0); /* Then decrease the refcount */ @@ -35,7 +35,7 @@ index cca76d4..8c3185d 100644 } ret = qcow2_cache_put(bs, s->l2_table_cache, (void**) &l2_table); -@@ -1358,7 +1358,7 @@ static int discard_single_l2(BlockDriverState *bs, uint64_t offset, +@@ -1361,7 +1361,7 @@ static int discard_single_l2(BlockDriverState *bs, uint64_t offset, } int qcow2_discard_clusters(BlockDriverState *bs, uint64_t offset, @@ -44,7 +44,7 @@ index cca76d4..8c3185d 100644 { BDRVQcowState *s = bs->opaque; uint64_t end_offset; -@@ -1381,7 +1381,7 @@ int qcow2_discard_clusters(BlockDriverState *bs, uint64_t offset, +@@ -1384,7 +1384,7 @@ int qcow2_discard_clusters(BlockDriverState *bs, uint64_t offset, /* Each L2 table is handled by its own loop iteration */ while (nb_clusters > 0) { @@ -54,10 +54,10 @@ index cca76d4..8c3185d 100644 goto fail; } diff --git a/block/qcow2.c b/block/qcow2.c -index 7f7282e..16e45a0 100644 +index 3bf932b..f87e6e3 100644 --- a/block/qcow2.c +++ b/block/qcow2.c -@@ -1506,7 +1506,7 @@ static coroutine_fn int qcow2_co_discard(BlockDriverState *bs, +@@ -1510,7 +1510,7 @@ static coroutine_fn int qcow2_co_discard(BlockDriverState *bs, qemu_co_mutex_lock(&s->lock); ret = qcow2_discard_clusters(bs, sector_num << BDRV_SECTOR_BITS, diff --git a/0102-qcow2-Discard-VM-state-in-active-L1-after-creating-s.patch b/0102-qcow2-Discard-VM-state-in-active-L1-after-creating-s.patch index cb0e92c..4535846 100644 --- a/0102-qcow2-Discard-VM-state-in-active-L1-after-creating-s.patch +++ b/0102-qcow2-Discard-VM-state-in-active-L1-after-creating-s.patch @@ -1,4 +1,4 @@ -From 16d78f7cd9e1455ebb0599706ba5badfa3ee4fdc Mon Sep 17 00:00:00 2001 +From 08af434ab2532e22edc79898c6958ad6c44d10e1 Mon Sep 17 00:00:00 2001 From: Kevin Wolf Date: Fri, 6 Sep 2013 12:32:26 +0200 Subject: [PATCH] qcow2: Discard VM state in active L1 after creating snapshot @@ -40,10 +40,10 @@ index 0caac90..ae33b45 100644 { BdrvCheckResult result = {0}; diff --git a/block/qcow2.c b/block/qcow2.c -index 16e45a0..f63c2cb 100644 +index f87e6e3..44161b2 100644 --- a/block/qcow2.c +++ b/block/qcow2.c -@@ -1666,11 +1666,6 @@ static coroutine_fn int qcow2_co_flush_to_os(BlockDriverState *bs) +@@ -1670,11 +1670,6 @@ static coroutine_fn int qcow2_co_flush_to_os(BlockDriverState *bs) return 0; } diff --git a/0103-hw-9pfs-Fix-errno-value-for-xattr-functions.patch b/0103-hw-9pfs-Fix-errno-value-for-xattr-functions.patch index cd7b42f..b5083d3 100644 --- a/0103-hw-9pfs-Fix-errno-value-for-xattr-functions.patch +++ b/0103-hw-9pfs-Fix-errno-value-for-xattr-functions.patch @@ -1,4 +1,4 @@ -From 6f7e1d2bddb5a0a1c65f6f02467460d6edbcc901 Mon Sep 17 00:00:00 2001 +From 7e1b10e09968a5d503feacc45eabe6608361a527 Mon Sep 17 00:00:00 2001 From: "Daniel P. Berrange" Date: Tue, 1 Oct 2013 12:28:17 +0100 Subject: [PATCH] hw/9pfs: Fix errno value for xattr functions diff --git a/0104-Fix-pc-migration-from-qemu-1.5.patch b/0104-Fix-pc-migration-from-qemu-1.5.patch deleted file mode 100644 index 022b66c..0000000 --- a/0104-Fix-pc-migration-from-qemu-1.5.patch +++ /dev/null @@ -1,203 +0,0 @@ -From 042c76790b1168766332b1aafa4429c265d35ed0 Mon Sep 17 00:00:00 2001 -From: Cole Robinson -Date: Mon, 7 Oct 2013 16:32:24 -0400 -Subject: [PATCH] Fix pc migration from qemu <= 1.5 - -The following commit introduced a migration incompatibility: - -commit 568f0690fd9aa4d39d84b04c1a5dbb53a915c3fe -Author: David Gibson -Date: Thu Jun 6 18:48:49 2013 +1000 - - pci: Replace pci_find_domain() with more general pci_root_bus_path() - -The issue is that i440fx savevm idstr went from 0000:00:00.0/I440FX to -0000:00.0/I440FX. Unfortunately we are stuck with the breakage for -1.6 machine types. - -Add a compat property to maintain the busted idstr for the 1.6 machine -types, but revert to the old style format for 1.7+, and <= 1.5. - -Tested with migration from qemu 1.5, qemu 1.6, and qemu.git. - -Cc: qemu-stable@nongnu.org -Signed-off-by: Cole Robinson ---- - hw/i386/pc_piix.c | 11 +++++++++++ - hw/i386/pc_q35.c | 11 +++++++++++ - hw/pci-host/piix.c | 9 ++++++++- - hw/pci-host/q35.c | 10 ++++++++-- - include/hw/i386/pc.h | 20 ++++++++++++++++++++ - include/hw/pci-host/q35.h | 1 + - 6 files changed, 59 insertions(+), 3 deletions(-) - -diff --git a/hw/i386/pc_piix.c b/hw/i386/pc_piix.c -index 2f2cb4d..10866f5 100644 ---- a/hw/i386/pc_piix.c -+++ b/hw/i386/pc_piix.c -@@ -341,6 +341,13 @@ static void pc_xen_hvm_init(QEMUMachineInitArgs *args) - } - #endif - -+#define PC_I440FX_MACHINE_OPTIONS \ -+ PC_DEFAULT_MACHINE_OPTIONS, \ -+ .desc = "Standard PC (i440FX + PIIX, 1996)", \ -+ .hot_add_cpu = pc_hot_add_cpu -+ -+#define PC_I440FX_1_6_MACHINE_OPTIONS PC_I440FX_MACHINE_OPTIONS -+ - static QEMUMachine pc_i440fx_machine_v1_6 = { - .name = "pc-i440fx-1.6", - .alias = "pc", -@@ -349,6 +356,10 @@ static QEMUMachine pc_i440fx_machine_v1_6 = { - .hot_add_cpu = pc_hot_add_cpu, - .max_cpus = 255, - .is_default = 1, -+ .compat_props = (GlobalProperty[]) { -+ PC_COMPAT_1_6, -+ { /* end of list */ } -+ }, - DEFAULT_MACHINE_OPTIONS, - }; - -diff --git a/hw/i386/pc_q35.c b/hw/i386/pc_q35.c -index dd13130..4998ed3 100644 ---- a/hw/i386/pc_q35.c -+++ b/hw/i386/pc_q35.c -@@ -243,6 +243,13 @@ static void pc_q35_init_1_4(QEMUMachineInitArgs *args) - pc_q35_init(args); - } - -+#define PC_Q35_MACHINE_OPTIONS \ -+ PC_DEFAULT_MACHINE_OPTIONS, \ -+ .desc = "Standard PC (Q35 + ICH9, 2009)", \ -+ .hot_add_cpu = pc_hot_add_cpu -+ -+#define PC_Q35_1_6_MACHINE_OPTIONS PC_Q35_MACHINE_OPTIONS -+ - static QEMUMachine pc_q35_machine_v1_6 = { - .name = "pc-q35-1.6", - .alias = "q35", -@@ -250,6 +257,10 @@ static QEMUMachine pc_q35_machine_v1_6 = { - .init = pc_q35_init_1_6, - .hot_add_cpu = pc_hot_add_cpu, - .max_cpus = 255, -+ .compat_props = (GlobalProperty[]) { -+ PC_COMPAT_1_6, -+ { /* end of list */ } -+ }, - DEFAULT_MACHINE_OPTIONS, - }; - -diff --git a/hw/pci-host/piix.c b/hw/pci-host/piix.c -index 221d82b..967f949 100644 ---- a/hw/pci-host/piix.c -+++ b/hw/pci-host/piix.c -@@ -48,6 +48,7 @@ typedef struct I440FXState { - PCIHostState parent_obj; - PcPciInfo pci_info; - uint64_t pci_hole64_size; -+ uint32_t short_root_bus; - } I440FXState; - - #define PIIX_NUM_PIC_IRQS 16 /* i8259 * 2 */ -@@ -706,13 +707,19 @@ static const TypeInfo i440fx_info = { - static const char *i440fx_pcihost_root_bus_path(PCIHostState *host_bridge, - PCIBus *rootbus) - { -+ I440FXState *s = I440FX_PCI_HOST_BRIDGE(host_bridge); -+ - /* For backwards compat with old device paths */ -- return "0000"; -+ if (s->short_root_bus) { -+ return "0000"; -+ } -+ return "0000:00"; - } - - static Property i440fx_props[] = { - DEFINE_PROP_SIZE(PCI_HOST_PROP_PCI_HOLE64_SIZE, I440FXState, - pci_hole64_size, DEFAULT_PCI_HOLE64_SIZE), -+ DEFINE_PROP_UINT32("short_root_bus", I440FXState, short_root_bus, 0), - DEFINE_PROP_END_OF_LIST(), - }; - -diff --git a/hw/pci-host/q35.c b/hw/pci-host/q35.c -index 4febd24..f762053 100644 ---- a/hw/pci-host/q35.c -+++ b/hw/pci-host/q35.c -@@ -61,8 +61,13 @@ static void q35_host_realize(DeviceState *dev, Error **errp) - static const char *q35_host_root_bus_path(PCIHostState *host_bridge, - PCIBus *rootbus) - { -- /* For backwards compat with old device paths */ -- return "0000"; -+ Q35PCIHost *s = Q35_HOST_DEVICE(host_bridge); -+ -+ /* For backwards compat with old device paths */ -+ if (s->mch.short_root_bus) { -+ return "0000"; -+ } -+ return "0000:00"; - } - - static void q35_host_get_pci_hole_start(Object *obj, Visitor *v, -@@ -108,6 +113,7 @@ static Property mch_props[] = { - MCH_HOST_BRIDGE_PCIEXBAR_DEFAULT), - DEFINE_PROP_SIZE(PCI_HOST_PROP_PCI_HOLE64_SIZE, Q35PCIHost, - mch.pci_hole64_size, DEFAULT_PCI_HOLE64_SIZE), -+ DEFINE_PROP_UINT32("short_root_bus", Q35PCIHost, mch.short_root_bus, 0), - DEFINE_PROP_END_OF_LIST(), - }; - -diff --git a/include/hw/i386/pc.h b/include/hw/i386/pc.h -index 475ba9e..6e2b839 100644 ---- a/include/hw/i386/pc.h -+++ b/include/hw/i386/pc.h -@@ -225,7 +225,19 @@ void pvpanic_init(ISABus *bus); - - int e820_add_entry(uint64_t, uint64_t, uint32_t); - -+#define PC_COMPAT_1_6 \ -+ {\ -+ .driver = "i440FX-pcihost",\ -+ .property = "short_root_bus",\ -+ .value = stringify(1),\ -+ },{\ -+ .driver = "q35-pcihost",\ -+ .property = "short_root_bus",\ -+ .value = stringify(1),\ -+ } -+ - #define PC_COMPAT_1_5 \ -+ PC_COMPAT_1_6, \ - {\ - .driver = "Conroe-" TYPE_X86_CPU,\ - .property = "model",\ -@@ -258,6 +270,14 @@ int e820_add_entry(uint64_t, uint64_t, uint32_t); - .driver = TYPE_X86_CPU,\ - .property = "pmu",\ - .value = "on",\ -+ },{\ -+ .driver = "i440FX-pcihost",\ -+ .property = "short_root_bus",\ -+ .value = stringify(0),\ -+ },{\ -+ .driver = "q35-pcihost",\ -+ .property = "short_root_bus",\ -+ .value = stringify(0),\ - } - - #define PC_COMPAT_1_4 \ -diff --git a/include/hw/pci-host/q35.h b/include/hw/pci-host/q35.h -index 6eb7ab6..95a3cc2 100644 ---- a/include/hw/pci-host/q35.h -+++ b/include/hw/pci-host/q35.h -@@ -61,6 +61,7 @@ typedef struct MCHPCIState { - ram_addr_t above_4g_mem_size; - uint64_t pci_hole64_size; - PcGuestInfo *guest_info; -+ uint32_t short_root_bus; - } MCHPCIState; - - typedef struct Q35PCIHost { diff --git a/0105-audio-honor-QEMU_AUDIO_TIMER_PERIOD-instead-of-wakin.patch b/0105-audio-honor-QEMU_AUDIO_TIMER_PERIOD-instead-of-wakin.patch deleted file mode 100644 index 30cfa3d..0000000 --- a/0105-audio-honor-QEMU_AUDIO_TIMER_PERIOD-instead-of-wakin.patch +++ /dev/null @@ -1,42 +0,0 @@ -From 6b7ac46a461482c06c5ccdf54815e94205bc7d95 Mon Sep 17 00:00:00 2001 -From: Hans de Goede -Date: Wed, 9 Oct 2013 21:33:44 +0200 -Subject: [PATCH] audio: honor QEMU_AUDIO_TIMER_PERIOD instead of waking up - every *nano* second - -Now that we no longer have MIN_REARM_TIMER_NS a bug in the audio subsys has -clearly shown it self by trying to make a timer fire every nano second. - -Note we have a similar problem in 1.6, 1.5 and older but there -MIN_REARM_TIMER_NS limits the wakeups caused by audio being active to -4000 times / second. This still causes a host cpu load of 50 % for simply -playing audio, where as with this patch git master is at 13%, so we should -backport this to 1.5 and 1.6 too. - -Note this will not apply to 1.5 and 1.6 as is. - -Cc: qemu-stable@nongnu.org -Signed-off-by: Hans de Goede -Signed-off-by: Gerd Hoffmann -(cherry picked from commit b4350deed67b95651896ddb60cf9f765093a4848) - -Conflicts: - audio/audio.c ---- - audio/audio.c | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/audio/audio.c b/audio/audio.c -index 02bb886..f9b3e95 100644 ---- a/audio/audio.c -+++ b/audio/audio.c -@@ -1124,7 +1124,8 @@ static int audio_is_timer_needed (void) - static void audio_reset_timer (AudioState *s) - { - if (audio_is_timer_needed ()) { -- qemu_mod_timer (s->ts, qemu_get_clock_ns (vm_clock) + 1); -+ qemu_mod_timer (s->ts, -+ qemu_get_clock_ns (vm_clock) + conf.period.ticks); - } - else { - qemu_del_timer (s->ts); diff --git a/0106-qmp-access-the-local-QemuOptsLists-for-drive-option.patch b/0106-qmp-access-the-local-QemuOptsLists-for-drive-option.patch deleted file mode 100644 index 7ffa62a..0000000 --- a/0106-qmp-access-the-local-QemuOptsLists-for-drive-option.patch +++ /dev/null @@ -1,181 +0,0 @@ -From dd733d7097c126ee3b8ee8a0f4c38b8ccac76504 Mon Sep 17 00:00:00 2001 -From: Amos Kong -Date: Fri, 15 Nov 2013 18:53:14 +0100 -Subject: [PATCH] qmp: access the local QemuOptsLists for drive option - -Currently we have three QemuOptsList (qemu_common_drive_opts, -qemu_legacy_drive_opts, and qemu_drive_opts), only qemu_drive_opts -is added to vm_config_groups[]. - -This patch changes query-command-line-options to access three local -QemuOptsLists for drive option, and merge the description items -together. - -Signed-off-by: Amos Kong -Signed-off-by: Kevin Wolf ---- - blockdev.c | 1 - - include/qemu/config-file.h | 1 + - include/sysemu/sysemu.h | 1 + - util/qemu-config.c | 77 +++++++++++++++++++++++++++++++++++++++++++++- - vl.c | 2 ++ - 5 files changed, 80 insertions(+), 2 deletions(-) - -diff --git a/blockdev.c b/blockdev.c -index 097932c..1a6892e 100644 ---- a/blockdev.c -+++ b/blockdev.c -@@ -45,7 +45,6 @@ - #include "sysemu/arch_init.h" - - static QTAILQ_HEAD(drivelist, DriveInfo) drives = QTAILQ_HEAD_INITIALIZER(drives); --extern QemuOptsList qemu_common_drive_opts; - extern QemuOptsList qemu_old_drive_opts; - - static const char *const if_name[IF_COUNT] = { -diff --git a/include/qemu/config-file.h b/include/qemu/config-file.h -index ad4a9e5..508428f 100644 ---- a/include/qemu/config-file.h -+++ b/include/qemu/config-file.h -@@ -8,6 +8,7 @@ - QemuOptsList *qemu_find_opts(const char *group); - QemuOptsList *qemu_find_opts_err(const char *group, Error **errp); - void qemu_add_opts(QemuOptsList *list); -+void qemu_add_drive_opts(QemuOptsList *list); - int qemu_set_option(const char *str); - int qemu_global_option(const char *str); - void qemu_add_globals(void); -diff --git a/include/sysemu/sysemu.h b/include/sysemu/sysemu.h -index 1a77c99..4962cef 100644 ---- a/include/sysemu/sysemu.h -+++ b/include/sysemu/sysemu.h -@@ -190,6 +190,7 @@ QemuOpts *qemu_get_machine_opts(void); - - bool usb_enabled(bool default_usb); - -+extern QemuOptsList qemu_common_drive_opts; - extern QemuOptsList qemu_drive_opts; - extern QemuOptsList qemu_chardev_opts; - extern QemuOptsList qemu_device_opts; -diff --git a/util/qemu-config.c b/util/qemu-config.c -index a59568d..04da942 100644 ---- a/util/qemu-config.c -+++ b/util/qemu-config.c -@@ -8,6 +8,7 @@ - #include "qmp-commands.h" - - static QemuOptsList *vm_config_groups[32]; -+static QemuOptsList *drive_config_groups[4]; - - static QemuOptsList *find_list(QemuOptsList **lists, const char *group, - Error **errp) -@@ -77,6 +78,59 @@ static CommandLineParameterInfoList *query_option_descs(const QemuOptDesc *desc) - return param_list; - } - -+/* remove repeated entry from the info list */ -+static void cleanup_infolist(CommandLineParameterInfoList *head) -+{ -+ CommandLineParameterInfoList *pre_entry, *cur, *del_entry; -+ -+ cur = head; -+ while (cur->next) { -+ pre_entry = head; -+ while (pre_entry != cur->next) { -+ if (!strcmp(pre_entry->value->name, cur->next->value->name)) { -+ del_entry = cur->next; -+ cur->next = cur->next->next; -+ g_free(del_entry); -+ break; -+ } -+ pre_entry = pre_entry->next; -+ } -+ cur = cur->next; -+ } -+} -+ -+/* merge the description items of two parameter infolists */ -+static void connect_infolist(CommandLineParameterInfoList *head, -+ CommandLineParameterInfoList *new) -+{ -+ CommandLineParameterInfoList *cur; -+ -+ cur = head; -+ while (cur->next) { -+ cur = cur->next; -+ } -+ cur->next = new; -+} -+ -+/* access all the local QemuOptsLists for drive option */ -+static CommandLineParameterInfoList *get_drive_infolist(void) -+{ -+ CommandLineParameterInfoList *head = NULL, *cur; -+ int i; -+ -+ for (i = 0; drive_config_groups[i] != NULL; i++) { -+ if (!head) { -+ head = query_option_descs(drive_config_groups[i]->desc); -+ } else { -+ cur = query_option_descs(drive_config_groups[i]->desc); -+ connect_infolist(head, cur); -+ } -+ } -+ cleanup_infolist(head); -+ -+ return head; -+} -+ - CommandLineOptionInfoList *qmp_query_command_line_options(bool has_option, - const char *option, - Error **errp) -@@ -89,7 +143,12 @@ CommandLineOptionInfoList *qmp_query_command_line_options(bool has_option, - if (!has_option || !strcmp(option, vm_config_groups[i]->name)) { - info = g_malloc0(sizeof(*info)); - info->option = g_strdup(vm_config_groups[i]->name); -- info->parameters = query_option_descs(vm_config_groups[i]->desc); -+ if (!strcmp("drive", vm_config_groups[i]->name)) { -+ info->parameters = get_drive_infolist(); -+ } else { -+ info->parameters = -+ query_option_descs(vm_config_groups[i]->desc); -+ } - entry = g_malloc0(sizeof(*entry)); - entry->value = info; - entry->next = conf_list; -@@ -109,6 +168,22 @@ QemuOptsList *qemu_find_opts_err(const char *group, Error **errp) - return find_list(vm_config_groups, group, errp); - } - -+void qemu_add_drive_opts(QemuOptsList *list) -+{ -+ int entries, i; -+ -+ entries = ARRAY_SIZE(drive_config_groups); -+ entries--; /* keep list NULL terminated */ -+ for (i = 0; i < entries; i++) { -+ if (drive_config_groups[i] == NULL) { -+ drive_config_groups[i] = list; -+ return; -+ } -+ } -+ fprintf(stderr, "ran out of space in drive_config_groups"); -+ abort(); -+} -+ - void qemu_add_opts(QemuOptsList *list) - { - int entries, i; -diff --git a/vl.c b/vl.c -index 2160933..63ecf16 100644 ---- a/vl.c -+++ b/vl.c -@@ -2942,6 +2942,8 @@ int main(int argc, char **argv, char **envp) - module_call_init(MODULE_INIT_QOM); - - qemu_add_opts(&qemu_drive_opts); -+ qemu_add_drive_opts(&qemu_common_drive_opts); -+ qemu_add_drive_opts(&qemu_drive_opts); - qemu_add_opts(&qemu_chardev_opts); - qemu_add_opts(&qemu_device_opts); - qemu_add_opts(&qemu_netdev_opts); diff --git a/0107-seccomp-fine-tuning-whitelist-by-adding-times.patch b/0107-seccomp-fine-tuning-whitelist-by-adding-times.patch deleted file mode 100644 index 6818b37..0000000 --- a/0107-seccomp-fine-tuning-whitelist-by-adding-times.patch +++ /dev/null @@ -1,28 +0,0 @@ -From aafda3de0ce3589fa69472bd4a1782c65c8c7ade Mon Sep 17 00:00:00 2001 -From: Eduardo Otubo -Date: Tue, 24 Sep 2013 14:50:44 -0300 -Subject: [PATCH] seccomp: fine tuning whitelist by adding times() - -This was causing Qemu process to hang when using -sandbox on as -discribed on RHBZ: https://bugzilla.redhat.com/show_bug.cgi?id=1004175 - -Signed-off-by: Eduardo Otubo -Tested-by: Paul Moore -Acked-by: Paul Moore -(cherry picked from commit c236f4519c9838801798f3705c17dce9ab9e3b9d) ---- - qemu-seccomp.c | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/qemu-seccomp.c b/qemu-seccomp.c -index 37d38f8..69cee44 100644 ---- a/qemu-seccomp.c -+++ b/qemu-seccomp.c -@@ -90,6 +90,7 @@ static const struct QemuSeccompSyscall seccomp_whitelist[] = { - { SCMP_SYS(getuid), 245 }, - { SCMP_SYS(geteuid), 245 }, - { SCMP_SYS(timer_create), 245 }, -+ { SCMP_SYS(times), 245 }, - { SCMP_SYS(exit), 245 }, - { SCMP_SYS(clock_gettime), 245 }, - { SCMP_SYS(time), 245 }, diff --git a/0108-seccomp-add-kill-to-the-syscall-whitelist.patch b/0108-seccomp-add-kill-to-the-syscall-whitelist.patch deleted file mode 100644 index db25998..0000000 --- a/0108-seccomp-add-kill-to-the-syscall-whitelist.patch +++ /dev/null @@ -1,42 +0,0 @@ -From fc585c217f4f999d01695385b9f5bf194a117600 Mon Sep 17 00:00:00 2001 -From: Paul Moore -Date: Thu, 21 Nov 2013 10:40:15 -0500 -Subject: [PATCH] seccomp: add kill() to the syscall whitelist - -The kill() syscall is triggered with the following command: - - # qemu -sandbox on -monitor stdio \ - -device intel-hda -device hda-duplex -vnc :0 - -The resulting syslog/audit message: - - # ausearch -m SECCOMP - ---- - time->Wed Nov 20 09:52:08 2013 - type=SECCOMP msg=audit(1384912328.482:6656): auid=0 uid=0 gid=0 ses=854 - subj=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 pid=12087 - comm="qemu-kvm" sig=31 syscall=62 compat=0 ip=0x7f7a1d2abc67 code=0x0 - # scmp_sys_resolver 62 - kill - -Reported-by: CongLi -Tested-by: CongLi -Signed-off-by: Paul Moore -Acked-by: Eduardo Otubo -(cherry picked from commit e9eecb5bf82a71564bf018fcbbfc6cda19cab6c2) ---- - qemu-seccomp.c | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/qemu-seccomp.c b/qemu-seccomp.c -index 69cee44..cf07869 100644 ---- a/qemu-seccomp.c -+++ b/qemu-seccomp.c -@@ -114,6 +114,7 @@ static const struct QemuSeccompSyscall seccomp_whitelist[] = { - { SCMP_SYS(write), 244 }, - { SCMP_SYS(fcntl), 243 }, - { SCMP_SYS(tgkill), 242 }, -+ { SCMP_SYS(kill), 242 }, - { SCMP_SYS(rt_sigaction), 242 }, - { SCMP_SYS(pipe2), 242 }, - { SCMP_SYS(munmap), 242 }, diff --git a/0109-spice-flip-streaming-video-mode-to-off-by-default.patch b/0109-spice-flip-streaming-video-mode-to-off-by-default.patch deleted file mode 100644 index db85cc4..0000000 --- a/0109-spice-flip-streaming-video-mode-to-off-by-default.patch +++ /dev/null @@ -1,33 +0,0 @@ -From f7944b361fe5220d19680234db250abaad7ce909 Mon Sep 17 00:00:00 2001 -From: Gerd Hoffmann -Date: Mon, 2 Dec 2013 11:17:04 +0100 -Subject: [PATCH] spice: flip streaming video mode to off by default - -Video streaming detection heuristics in spice-server have problems -keeping modern desktop animations (as done by gnome shell) and real -video playback apart. This leads to jpeg compression artefacts on -your desktop, due to spice using mjpeg to send what it thinks is -a video stream. - -Turn off video detection by default to avoid these artifacts. - -Signed-off-by: Gerd Hoffmann -Reviewed-by: Alon Levy -(cherry picked from commit f1d3e586f069e17f83b669842bc02d60d509daca) ---- - ui/spice-core.c | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/ui/spice-core.c b/ui/spice-core.c -index bd7a248..3960fa0 100644 ---- a/ui/spice-core.c -+++ b/ui/spice-core.c -@@ -778,6 +778,8 @@ void qemu_spice_init(void) - if (str) { - int streaming_video = parse_stream_video(str); - spice_server_set_streaming_video(spice_server, streaming_video); -+ } else { -+ spice_server_set_streaming_video(spice_server, SPICE_STREAM_VIDEO_OFF); - } - - spice_server_set_agent_mouse diff --git a/0110-scsi-bus-fix-transfer-length-and-direction-for-VERIF.patch b/0110-scsi-bus-fix-transfer-length-and-direction-for-VERIF.patch deleted file mode 100644 index 29d8bbf..0000000 --- a/0110-scsi-bus-fix-transfer-length-and-direction-for-VERIF.patch +++ /dev/null @@ -1,59 +0,0 @@ -From f89c33c8092d7cc96d9937ea826c2ac8374779c8 Mon Sep 17 00:00:00 2001 -From: Paolo Bonzini -Date: Thu, 28 Nov 2013 11:01:13 +0100 -Subject: [PATCH] scsi-bus: fix transfer length and direction for VERIFY - command -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -The amount of bytes to transfer depends on the BYTCHK field. -If any data is transferred, it is sent to the device. - -Cc: qemu-stable@nongnu.org -Tested-by: Hervé Poussineau -Signed-off-by: Paolo Bonzini -(cherry picked from commit d12ad44cc4cc9142179e64295608611f118b8ad8) ---- - hw/scsi/scsi-bus.c | 14 +++++++++++++- - 1 file changed, 13 insertions(+), 1 deletion(-) - -diff --git a/hw/scsi/scsi-bus.c b/hw/scsi/scsi-bus.c -index ad26c25..c62bfae 100644 ---- a/hw/scsi/scsi-bus.c -+++ b/hw/scsi/scsi-bus.c -@@ -885,7 +885,6 @@ static int scsi_req_length(SCSICommand *cmd, SCSIDevice *dev, uint8_t *buf) - case RELEASE: - case ERASE: - case ALLOW_MEDIUM_REMOVAL: -- case VERIFY_10: - case SEEK_10: - case SYNCHRONIZE_CACHE: - case SYNCHRONIZE_CACHE_16: -@@ -902,6 +901,16 @@ static int scsi_req_length(SCSICommand *cmd, SCSIDevice *dev, uint8_t *buf) - case ALLOW_OVERWRITE: - cmd->xfer = 0; - break; -+ case VERIFY_10: -+ case VERIFY_12: -+ case VERIFY_16: -+ if ((buf[1] & 2) == 0) { -+ cmd->xfer = 0; -+ } else if ((buf[1] & 4) == 1) { -+ cmd->xfer = 1; -+ } -+ cmd->xfer *= dev->blocksize; -+ break; - case MODE_SENSE: - break; - case WRITE_SAME_10: -@@ -1099,6 +1108,9 @@ static void scsi_cmd_xfer_mode(SCSICommand *cmd) - case WRITE_VERIFY_12: - case WRITE_16: - case WRITE_VERIFY_16: -+ case VERIFY_10: -+ case VERIFY_12: -+ case VERIFY_16: - case COPY: - case COPY_VERIFY: - case COMPARE: diff --git a/0111-scsi-disk-fix-VERIFY-emulation.patch b/0111-scsi-disk-fix-VERIFY-emulation.patch deleted file mode 100644 index ef290cc..0000000 --- a/0111-scsi-disk-fix-VERIFY-emulation.patch +++ /dev/null @@ -1,90 +0,0 @@ -From 1de35d38fb04166c0b7f6b87f7e38ae8c73651bb Mon Sep 17 00:00:00 2001 -From: Paolo Bonzini -Date: Thu, 28 Nov 2013 11:18:56 +0100 -Subject: [PATCH] scsi-disk: fix VERIFY emulation -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -VERIFY emulation was completely botched (and remained botched through -all the refactorings). The command must be emulated both in check-medium -mode (BYTCHK=00, which we implement by doing nothing) and in check-bytes -mode (which we do not implement yet). Unlike WRITE AND VERIFY (which we -treat simply as WRITE with FUA bit set), VERIFY cannot be handled like -READ. In fact the device is _receiving_ data for VERIFY, not _sending_ -it like READ. - -Cc: qemu-stable@nongnu.org -Tested-by: Hervé Poussineau -Signed-off-by: Paolo Bonzini -(cherry picked from commit d97e7730816094a71cd1f19a56d7a73f77cdbf96) - -Conflicts: - hw/scsi/scsi-disk.c ---- - hw/scsi/scsi-disk.c | 26 +++++++++++++++++++------- - 1 file changed, 19 insertions(+), 7 deletions(-) - -diff --git a/hw/scsi/scsi-disk.c b/hw/scsi/scsi-disk.c -index 74e6a14..1fd1c26 100644 ---- a/hw/scsi/scsi-disk.c -+++ b/hw/scsi/scsi-disk.c -@@ -1597,6 +1597,14 @@ static void scsi_disk_emulate_write_data(SCSIRequest *req) - scsi_disk_emulate_unmap(r, r->iov.iov_base); - break; - -+ case VERIFY_10: -+ case VERIFY_12: -+ case VERIFY_16: -+ if (r->req.status == -1) { -+ scsi_check_condition(r, SENSE_CODE(INVALID_FIELD)); -+ } -+ break; -+ - default: - abort(); - } -@@ -1837,6 +1845,14 @@ static int32_t scsi_disk_emulate_command(SCSIRequest *req, uint8_t *buf) - case UNMAP: - DPRINTF("Unmap (len %lu)\n", (long)r->req.cmd.xfer); - break; -+ case VERIFY_10: -+ case VERIFY_12: -+ case VERIFY_16: -+ DPRINTF("Verify (bytchk %lu)\n", (r->req.buf[1] >> 1) & 3); -+ if (req->cmd.buf[1] & 6) { -+ goto illegal_request; -+ } -+ break; - case WRITE_SAME_10: - case WRITE_SAME_16: - nb_sectors = scsi_data_cdb_length(r->req.cmd.buf); -@@ -1936,10 +1952,6 @@ static int32_t scsi_disk_dma_command(SCSIRequest *req, uint8_t *buf) - scsi_check_condition(r, SENSE_CODE(WRITE_PROTECTED)); - return 0; - } -- /* fallthrough */ -- case VERIFY_10: -- case VERIFY_12: -- case VERIFY_16: - DPRINTF("Write %s(sector %" PRId64 ", count %u)\n", - (command & 0xe) == 0xe ? "And Verify " : "", - r->req.cmd.lba, len); -@@ -2207,14 +2219,14 @@ static const SCSIReqOps *const scsi_disk_reqops_dispatch[256] = { - [UNMAP] = &scsi_disk_emulate_reqops, - [WRITE_SAME_10] = &scsi_disk_emulate_reqops, - [WRITE_SAME_16] = &scsi_disk_emulate_reqops, -+ [VERIFY_10] = &scsi_disk_emulate_reqops, -+ [VERIFY_12] = &scsi_disk_emulate_reqops, -+ [VERIFY_16] = &scsi_disk_emulate_reqops, - - [READ_6] = &scsi_disk_dma_reqops, - [READ_10] = &scsi_disk_dma_reqops, - [READ_12] = &scsi_disk_dma_reqops, - [READ_16] = &scsi_disk_dma_reqops, -- [VERIFY_10] = &scsi_disk_dma_reqops, -- [VERIFY_12] = &scsi_disk_dma_reqops, -- [VERIFY_16] = &scsi_disk_dma_reqops, - [WRITE_6] = &scsi_disk_dma_reqops, - [WRITE_10] = &scsi_disk_dma_reqops, - [WRITE_12] = &scsi_disk_dma_reqops, diff --git a/0112-migration-drop-MADVISE_DONT_NEED-for-incoming-zero-p.patch b/0112-migration-drop-MADVISE_DONT_NEED-for-incoming-zero-p.patch deleted file mode 100644 index af16d89..0000000 --- a/0112-migration-drop-MADVISE_DONT_NEED-for-incoming-zero-p.patch +++ /dev/null @@ -1,47 +0,0 @@ -From b96534d01807de76afa262568e156156c0a6fdd6 Mon Sep 17 00:00:00 2001 -From: Peter Lieven -Date: Thu, 24 Oct 2013 09:21:29 +0200 -Subject: [PATCH] migration: drop MADVISE_DONT_NEED for incoming zero pages - -The madvise for zeroed out pages was introduced when every transferred -zero page was memset to zero and thus allocated. Since commit -211ea740 we check for zeroness of a target page before we memset -it to zero. Additionally we memmap target memory so it is essentially -zero initialized (except for e.g. option roms and bios which are loaded -into target memory although they shouldn't). - -It was reported recently that this madvise causes a performance degradation -in some situations. As the madvise should only be called rarely and if it's called -it is likely on a busy page (it was non-zero and changed to zero during migration) -drop it completely. - -Reported-By: Zhang Haoyu -Acked-by: Paolo Bonzini -Signed-off-by: Peter Lieven -Signed-off-by: Juan Quintela -(cherry picked from commit fc1c4a5d32e15a4c40c47945da85ef9c1e0c1b54) - -Conflicts: - arch_init.c ---- - arch_init.c | 7 ------- - 1 file changed, 7 deletions(-) - -diff --git a/arch_init.c b/arch_init.c -index 68a7ab7..23151b3 100644 ---- a/arch_init.c -+++ b/arch_init.c -@@ -845,13 +845,6 @@ void ram_handle_compressed(void *host, uint8_t ch, uint64_t size) - { - if (ch != 0 || !is_zero_page(host)) { - memset(host, ch, size); --#ifndef _WIN32 -- if (ch == 0 && -- (!kvm_enabled() || kvm_has_sync_mmu()) && -- getpagesize() <= TARGET_PAGE_SIZE) { -- qemu_madvise(host, TARGET_PAGE_SIZE, QEMU_MADV_DONTNEED); -- } --#endif - } - } - diff --git a/qemu.spec b/qemu.spec index 2c0a76e..ca379fa 100644 --- a/qemu.spec +++ b/qemu.spec @@ -138,8 +138,8 @@ Summary: QEMU is a FAST! processor emulator Name: qemu -Version: 1.6.1 -Release: 3%{?dist} +Version: 1.6.2 +Release: 1%{?dist} Epoch: 2 License: GPLv2+ and LGPLv2+ and BSD Group: Development/Tools @@ -211,26 +211,30 @@ Patch0102: 0102-qcow2-Discard-VM-state-in-active-L1-after-creating-s.patch # Fix 9pfs xattrs on kernel 3.11 (bz #1013676) # Patch posted upstream Patch0103: 0103-hw-9pfs-Fix-errno-value-for-xattr-functions.patch -# Fix migration from qemu <= 1.5 -# Patch posted upstream -Patch0104: 0104-Fix-pc-migration-from-qemu-1.5.patch -# Reduce CPU usage when audio is playing (bz #1017644) -Patch0105: 0105-audio-honor-QEMU_AUDIO_TIMER_PERIOD-instead-of-wakin.patch # Fix drive discard options via libvirt (bz #1029953) # Patch queued upstream -Patch0106: 0106-qmp-access-the-local-QemuOptsLists-for-drive-option.patch +Patch0104: 0104-qmp-access-the-local-QemuOptsLists-for-drive-option.patch # Fix process exit with -sandbox on (bz #1027421) -Patch0107: 0107-seccomp-fine-tuning-whitelist-by-adding-times.patch -# Add kill() to seccomp whitelist, fix AC97 with -sandbox on (bz -# #1043521) -Patch0108: 0108-seccomp-add-kill-to-the-syscall-whitelist.patch +Patch0105: 0105-seccomp-fine-tuning-whitelist-by-adding-times.patch # Changing streaming mode default to off for spice (bz #1038336) -Patch0109: 0109-spice-flip-streaming-video-mode-to-off-by-default.patch +Patch0106: 0106-spice-flip-streaming-video-mode-to-off-by-default.patch # Fix guest scsi verify command (bz #1001617) -Patch0110: 0110-scsi-bus-fix-transfer-length-and-direction-for-VERIF.patch -Patch0111: 0111-scsi-disk-fix-VERIFY-emulation.patch +Patch0107: 0107-scsi-bus-fix-transfer-length-and-direction-for-VERIF.patch +Patch0108: 0108-scsi-disk-fix-VERIFY-emulation.patch # Fix performance regression after save/restore (bz #917723) -Patch0112: 0112-migration-drop-MADVISE_DONT_NEED-for-incoming-zero-p.patch +Patch0109: 0109-migration-drop-MADVISE_DONT_NEED-for-incoming-zero-p.patch +# Fix bogus libcacard dep on gluster (bz #987441) +Patch0110: 0110-libcacard-Don-t-link-with-all-libraries-QEMU-links-t.patch +# Fix mouse with -display gtk -vga qxl (bz #1051724) +Patch0111: 0111-gtk-Fix-mouse-warping-with-gtk3.patch +Patch0112: 0112-gtk-Don-t-warp-absolute-pointer.patch +# Change gtk quit accelerator to ctrl+shift+q (bz #1062393) +# Patches queued for 2.1 +Patch0113: 0113-Change-gtk-quit-accelerator-to-ctrl-shift-q-bz-10623.patch +# Fix crash during virtio-scsi hotplug (bz #1051611) +Patch0114: 0114-scsi-Assign-cancel_io-vector-for-scsi_disk_emulate_o.patch +Patch0115: 0115-virtio-scsi-Cleanup-of-I-Os-that-never-started.patch +Patch0116: 0116-virtio-scsi-Prevent-assertion-on-missed-events.patch BuildRequires: SDL-devel BuildRequires: zlib-devel @@ -774,26 +778,30 @@ CAC emulation development files. # Fix 9pfs xattrs on kernel 3.11 (bz #1013676) # Patch posted upstream %patch0103 -p1 -# Fix migration from qemu <= 1.5 -# Patch posted upstream -%patch0104 -p1 -# Reduce CPU usage when audio is playing (bz #1017644) -%patch0105 -p1 # Fix drive discard options via libvirt (bz #1029953) # Patch queued upstream -%patch0106 -p1 +%patch0104 -p1 # Fix process exit with -sandbox on (bz #1027421) +%patch0105 -p1 +# Changing streaming mode default to off for spice (bz #1038336) +%patch0106 -p1 +# Fix guest scsi verify command (bz #1001617) %patch0107 -p1 -# Add kill() to seccomp whitelist, fix AC97 with -sandbox on (bz -# #1043521) %patch0108 -p1 -# Changing streaming mode default to off for spice (bz #1038336) +# Fix performance regression after save/restore (bz #917723) %patch0109 -p1 -# Fix guest scsi verify command (bz #1001617) +# Fix bogus libcacard dep on gluster (bz #987441) %patch0110 -p1 +# Fix mouse with -display gtk -vga qxl (bz #1051724) %patch0111 -p1 -# Fix performance regression after save/restore (bz #917723) %patch0112 -p1 +# Change gtk quit accelerator to ctrl+shift+q (bz #1062393) +# Patches queued for 2.1 +%patch0113 -p1 +# Fix crash during virtio-scsi hotplug (bz #1051611) +%patch0114 -p1 +%patch0115 -p1 +%patch0116 -p1 %build @@ -1501,6 +1509,12 @@ getent passwd qemu >/dev/null || \ %endif %changelog +* Wed Mar 19 2014 Cole Robinson - 2:1.6.2-1 +- Fix bogus libcacard dep on gluster (bz #987441) +- Fix mouse with -display gtk -vga qxl (bz #1051724) +- Change gtk quit accelerator to ctrl+shift+q (bz #1062393) +- Fix crash during virtio-scsi hotplug (bz #1051611) + * Wed Dec 18 2013 Cole Robinson - 2:1.6.1-3 - Add kill() to seccomp whitelist, fix AC97 with -sandbox on (bz #1043521) - Changing streaming mode default to off for spice (bz #1038336) diff --git a/sources b/sources index 06f99b4..e12efc1 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -3a897d722457c5a895cd6ac79a28fda0 qemu-1.6.1.tar.bz2 +d0a75f8acfe2becf33cec040e8be78e8 qemu-1.6.2.tar.bz2