diff --git a/.cvsignore b/.cvsignore index c684ce8..19c10ab 100644 --- a/.cvsignore +++ b/.cvsignore @@ -1,2 +1,3 @@ qemu-kvm-0.12.1.2.tar.gz qemu-kvm-0.12.2.tar.gz +qemu-kvm-0.12.3.tar.gz diff --git a/0038-msix-migration-fix.patch b/0038-msix-migration-fix.patch new file mode 100644 index 0000000..b7d2c08 --- /dev/null +++ b/0038-msix-migration-fix.patch @@ -0,0 +1,43 @@ +From af483cb870ad81dce8e10215e0add284fcc38da4 Mon Sep 17 00:00:00 2001 +From: Michael S. Tsirkin +Date: Wed, 24 Feb 2010 21:09:45 +0200 +Subject: [PATCH] msix: migration fix + +Be careful to match mask/unmask callbacks from msix. +Fixes crash during migration. + +Signed-off-by: Michael S. Tsirkin +--- + hw/msix.c | 16 +++++++++++++--- + 1 files changed, 13 insertions(+), 3 deletions(-) + +diff --git a/hw/msix.c b/hw/msix.c +index 3fcf3a1..fafaf09 100644 +--- a/hw/msix.c ++++ b/hw/msix.c +@@ -614,9 +614,19 @@ int msix_set_mask_notifier(PCIDevice *dev, unsigned vector, void *opaque) + if (vector >= dev->msix_entries_nr || !dev->msix_entry_used[vector]) + return 0; + +- if (dev->msix_mask_notifier) +- r = dev->msix_mask_notifier(dev, vector, opaque, +- msix_is_masked(dev, vector)); ++ if (dev->msix_mask_notifier && !msix_is_masked(dev, vector)) { ++ /* Mask previous notifier if any */ ++ if (dev->msix_mask_notifier_opaque[vector]) { ++ r = dev->msix_mask_notifier(dev, vector, ++ dev->msix_mask_notifier_opaque[vector], ++ 1); ++ assert(r >= 0); ++ } ++ /* Unmask new notifier, assumed to be masked at start */ ++ if (opaque) { ++ r = dev->msix_mask_notifier(dev, vector, opaque, 0); ++ } ++ } + if (r >= 0) + dev->msix_mask_notifier_opaque[vector] = opaque; + return r; +-- +1.6.6.1 + diff --git a/0039-vhost-logging-thinko-fix.patch b/0039-vhost-logging-thinko-fix.patch new file mode 100644 index 0000000..9f0435a --- /dev/null +++ b/0039-vhost-logging-thinko-fix.patch @@ -0,0 +1,28 @@ +From c96adfe57a5a7ceed488fd6f198a762dd84c1d9c Mon Sep 17 00:00:00 2001 +From: Michael S. Tsirkin +Date: Wed, 24 Feb 2010 21:09:48 +0200 +Subject: [PATCH] vhost: logging thinko fix + +Fix logging: set it to requested value. + +Signed-off-by: Michael S. Tsirkin +--- + hw/vhost.c | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +diff --git a/hw/vhost.c b/hw/vhost.c +index e5c1ead..3c54596 100644 +--- a/hw/vhost.c ++++ b/hw/vhost.c +@@ -310,7 +310,7 @@ static int vhost_dev_set_log(struct vhost_dev *dev, bool enable_log) + { + uint64_t features = dev->acked_features; + int r; +- if (dev->log_enabled) { ++ if (enable_log) { + features |= 0x1 << VHOST_F_LOG_ALL; + } + r = ioctl(dev->control, VHOST_SET_FEATURES, &features); +-- +1.6.6.1 + diff --git a/0040-vhost-move-vhost_set_vq_addr.patch b/0040-vhost-move-vhost_set_vq_addr.patch new file mode 100644 index 0000000..e63119a --- /dev/null +++ b/0040-vhost-move-vhost_set_vq_addr.patch @@ -0,0 +1,72 @@ +From 575c00a2880177295a116d43132566143af69a0b Mon Sep 17 00:00:00 2001 +From: Michael S. Tsirkin +Date: Wed, 24 Feb 2010 21:09:51 +0200 +Subject: [PATCH] vhost: move vhost_set_vq_addr + +Move function in file: we'll add another +call site in the following patch. + +Signed-off-by: Michael S. Tsirkin +--- + hw/vhost.c | 38 +++++++++++++++++++------------------- + 1 files changed, 19 insertions(+), 19 deletions(-) + +diff --git a/hw/vhost.c b/hw/vhost.c +index 3c54596..54386e1 100644 +--- a/hw/vhost.c ++++ b/hw/vhost.c +@@ -306,6 +306,25 @@ static void vhost_client_set_memory(CPUPhysMemoryClient *client, + } + } + ++static int vhost_virtqueue_set_addr(struct vhost_dev *dev, ++ struct vhost_virtqueue *vq, ++ unsigned idx, bool enable_log) ++{ ++ struct vhost_vring_addr addr = { ++ .index = idx, ++ .desc_user_addr = (u_int64_t)(unsigned long)vq->desc, ++ .avail_user_addr = (u_int64_t)(unsigned long)vq->avail, ++ .used_user_addr = (u_int64_t)(unsigned long)vq->used, ++ .log_guest_addr = vq->used_phys, ++ .flags = enable_log ? (1 << VHOST_VRING_F_LOG) : 0, ++ }; ++ int r = ioctl(dev->control, VHOST_SET_VRING_ADDR, &addr); ++ if (r < 0) { ++ return -errno; ++ } ++ return 0; ++} ++ + static int vhost_dev_set_log(struct vhost_dev *dev, bool enable_log) + { + uint64_t features = dev->acked_features; +@@ -350,25 +369,6 @@ static int vhost_client_migration_log(struct CPUPhysMemoryClient *client, + return 0; + } + +-static int vhost_virtqueue_set_addr(struct vhost_dev *dev, +- struct vhost_virtqueue *vq, +- unsigned idx, bool enable_log) +-{ +- struct vhost_vring_addr addr = { +- .index = idx, +- .desc_user_addr = (u_int64_t)(unsigned long)vq->desc, +- .avail_user_addr = (u_int64_t)(unsigned long)vq->avail, +- .used_user_addr = (u_int64_t)(unsigned long)vq->used, +- .log_guest_addr = vq->used_phys, +- .flags = enable_log ? (1 << VHOST_VRING_F_LOG) : 0, +- }; +- int r = ioctl(dev->control, VHOST_SET_VRING_ADDR, &addr); +- if (r < 0) { +- return -errno; +- } +- return 0; +-} +- + static int vhost_virtqueue_init(struct vhost_dev *dev, + struct VirtIODevice *vdev, + struct vhost_virtqueue *vq, +-- +1.6.6.1 + diff --git a/0041-vhost-used-addr-migration-fix.patch b/0041-vhost-used-addr-migration-fix.patch new file mode 100644 index 0000000..90f027a --- /dev/null +++ b/0041-vhost-used-addr-migration-fix.patch @@ -0,0 +1,70 @@ +From ac48d782f3b91b2e9962ded5f8a55bd3929a82a5 Mon Sep 17 00:00:00 2001 +From: Michael S. Tsirkin +Date: Wed, 24 Feb 2010 21:09:54 +0200 +Subject: [PATCH] vhost: used addr migration fix + +Enable used buffer logging when migration starts. +Fixed 'id XX is not a head' message after migration. + +Signed-off-by: Michael S. Tsirkin +--- + hw/vhost.c | 29 +++++++++++++++++++++++++++-- + 1 files changed, 27 insertions(+), 2 deletions(-) + +diff --git a/hw/vhost.c b/hw/vhost.c +index 54386e1..48034ba 100644 +--- a/hw/vhost.c ++++ b/hw/vhost.c +@@ -325,7 +325,7 @@ static int vhost_virtqueue_set_addr(struct vhost_dev *dev, + return 0; + } + +-static int vhost_dev_set_log(struct vhost_dev *dev, bool enable_log) ++static int vhost_dev_set_features(struct vhost_dev *dev, bool enable_log) + { + uint64_t features = dev->acked_features; + int r; +@@ -336,6 +336,31 @@ static int vhost_dev_set_log(struct vhost_dev *dev, bool enable_log) + return r < 0 ? -errno : 0; + } + ++static int vhost_dev_set_log(struct vhost_dev *dev, bool enable_log) ++{ ++ int r, t, i; ++ r = vhost_dev_set_features(dev, enable_log); ++ if (r < 0) ++ goto err_features; ++ for (i = 0; i < dev->nvqs; ++i) { ++ r = vhost_virtqueue_set_addr(dev, dev->vqs + i, i, ++ enable_log); ++ if (r < 0) ++ goto err_vq; ++ } ++ return 0; ++err_vq: ++ for (; i >= 0; --i) { ++ t = vhost_virtqueue_set_addr(dev, dev->vqs + i, i, ++ dev->log_enabled); ++ assert(t >= 0); ++ } ++ t = vhost_dev_set_features(dev, dev->log_enabled); ++ assert(t >= 0); ++err_features: ++ return r; ++} ++ + static int vhost_client_migration_log(struct CPUPhysMemoryClient *client, + int enable) + { +@@ -544,7 +569,7 @@ int vhost_dev_start(struct vhost_dev *hdev, VirtIODevice *vdev) + { + int i, r; + +- r = vhost_dev_set_log(hdev, hdev->log_enabled); ++ r = vhost_dev_set_features(hdev, hdev->log_enabled); + if (r < 0) + goto fail; + r = ioctl(hdev->control, VHOST_SET_MEM_TABLE, hdev->mem); +-- +1.6.6.1 + diff --git a/0042-vhost-fix-used-logging-size-math.patch b/0042-vhost-fix-used-logging-size-math.patch new file mode 100644 index 0000000..a17058c --- /dev/null +++ b/0042-vhost-fix-used-logging-size-math.patch @@ -0,0 +1,37 @@ +From 91c827f000a94908b043b5de68eb0cd4fb6ff83d Mon Sep 17 00:00:00 2001 +From: Michael S. Tsirkin +Date: Wed, 24 Feb 2010 21:09:58 +0200 +Subject: [PATCH] vhost: fix used logging size math + +Must include used header as well, not only ring + +Signed-off-by: Michael S. Tsirkin +--- + hw/vhost.c | 4 +++- + 1 files changed, 3 insertions(+), 1 deletions(-) + +diff --git a/hw/vhost.c b/hw/vhost.c +index 48034ba..7391bd1 100644 +--- a/hw/vhost.c ++++ b/hw/vhost.c +@@ -62,7 +62,8 @@ static int vhost_client_sync_dirty_bitmap(struct CPUPhysMemoryClient *client, + } + for (i = 0; i < dev->nvqs; ++i) { + struct vhost_virtqueue *vq = dev->vqs + i; +- unsigned size = sizeof(struct vring_used_elem) * vq->num; ++ unsigned size = offsetof(struct vring_used, ring) + ++ sizeof(struct vring_used_elem) * vq->num; + vhost_dev_sync_region(dev, start_addr, end_addr, vq->used_phys, + range_get_last(vq->used_phys, size)); + } +@@ -230,6 +231,7 @@ static uint64_t vhost_get_log_size(struct vhost_dev *dev) + for (i = 0; i < dev->nvqs; ++i) { + struct vhost_virtqueue *vq = dev->vqs + i; + uint64_t last = vq->used_phys + ++ offsetof(struct vring_used, ring) + + sizeof(struct vring_used_elem) * vq->num - 1; + log_size = MAX(log_size, last / VHOST_LOG_CHUNK + 1); + } +-- +1.6.6.1 + diff --git a/0043-vhost-logging-mistake-enable-not-disable-log.patch b/0043-vhost-logging-mistake-enable-not-disable-log.patch new file mode 100644 index 0000000..58889da --- /dev/null +++ b/0043-vhost-logging-mistake-enable-not-disable-log.patch @@ -0,0 +1,26 @@ +From b4654f7911adb1352c2c47c76f650e8419a20b91 Mon Sep 17 00:00:00 2001 +From: Michael S. Tsirkin +Date: Wed, 24 Feb 2010 21:10:01 +0200 +Subject: [PATCH] vhost: logging mistake enable, not disable log + +Correctly pass log enable value from memory client to vhost device. +--- + hw/vhost.c | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +diff --git a/hw/vhost.c b/hw/vhost.c +index 7391bd1..019afc2 100644 +--- a/hw/vhost.c ++++ b/hw/vhost.c +@@ -387,7 +387,7 @@ static int vhost_client_migration_log(struct CPUPhysMemoryClient *client, + dev->log_size = 0; + } else { + vhost_dev_log_resize(dev, vhost_get_log_size(dev)); +- r = vhost_dev_set_log(dev, false); ++ r = vhost_dev_set_log(dev, true); + if (r < 0) { + return r; + } +-- +1.6.6.1 + diff --git a/0044-vhost-fix-log-base.patch b/0044-vhost-fix-log-base.patch new file mode 100644 index 0000000..1e97d89 --- /dev/null +++ b/0044-vhost-fix-log-base.patch @@ -0,0 +1,38 @@ +From d42430f94c77a653da486e6f96f6695818f3e81b Mon Sep 17 00:00:00 2001 +From: Michael S. Tsirkin +Date: Wed, 24 Feb 2010 21:10:04 +0200 +Subject: [PATCH] vhost: fix log base + +LOG_BASE ioctl gets a pointer to a 64 bit value, not +a pointer cast to 64 bit value. + +Signed-off-by: Michael S. Tsirkin +--- + hw/vhost.c | 5 +++-- + 1 files changed, 3 insertions(+), 2 deletions(-) + +diff --git a/hw/vhost.c b/hw/vhost.c +index 019afc2..b63eafa 100644 +--- a/hw/vhost.c ++++ b/hw/vhost.c +@@ -241,14 +241,15 @@ static uint64_t vhost_get_log_size(struct vhost_dev *dev) + static inline void vhost_dev_log_resize(struct vhost_dev* dev, uint64_t size) + { + vhost_log_chunk_t *log; ++ uint64_t log_base; + int r; + if (size) { + log = qemu_mallocz(size * sizeof *log); + } else { + log = NULL; + } +- r = ioctl(dev->control, VHOST_SET_LOG_BASE, +- (uint64_t)(unsigned long)log); ++ log_base = (uint64_t)(unsigned long)log; ++ r = ioctl(dev->control, VHOST_SET_LOG_BASE, &log_base); + assert(r >= 0); + vhost_client_sync_dirty_bitmap(&dev->client, 0, + (target_phys_addr_t)~0x0ull); +-- +1.6.6.1 + diff --git a/0045-pc-Add-a-Fedora-13-machine-type-that-contains-backpo.patch b/0045-pc-Add-a-Fedora-13-machine-type-that-contains-backpo.patch new file mode 100644 index 0000000..d7d5c27 --- /dev/null +++ b/0045-pc-Add-a-Fedora-13-machine-type-that-contains-backpo.patch @@ -0,0 +1,62 @@ +From 9aa404a57823c9fbf2bf2e0189d31a2b0d8bf3b9 Mon Sep 17 00:00:00 2001 +From: Amit Shah +Date: Thu, 25 Feb 2010 18:41:13 +0530 +Subject: [PATCH] pc: Add a Fedora-13 machine type that contains backports from upstream + +We have a few features backported from the upstream 0.13 machine type +in the repo here. + +Add a 'fedora-13' machine type and use that by default so that users can +fall back to a released upstream machine type if desired. + +The fedora-13 machine type has the new multiport-supported virtio-serial +and vhost-net patches as of now not present in the 0.12 machine type. + +This is based on upstream commit +d76fa62dba54a156ca0f5e79eb33756c9015e02c + +Signed-off-by: Amit Shah +--- + hw/pc.c | 19 +++++++++++++++++-- + 1 files changed, 17 insertions(+), 2 deletions(-) + +diff --git a/hw/pc.c b/hw/pc.c +index 56be728..26c65c1 100644 +--- a/hw/pc.c ++++ b/hw/pc.c +@@ -1327,11 +1327,9 @@ void cmos_set_s3_resume(void) + + static QEMUMachine pc_machine = { + .name = "pc-0.12", +- .alias = "pc", + .desc = "Standard PC", + .init = pc_init_pci, + .max_cpus = 255, +- .is_default = 1, + }; + + static QEMUMachine pc_machine_v0_11 = { +@@ -1416,3 +1414,20 @@ static void pc_machine_init(void) + } + + machine_init(pc_machine_init); ++ ++/* Fedora machine types */ ++static QEMUMachine pc_machine_f13 = { ++ .name = "fedora-13", ++ .alias = "pc", ++ .desc = "Standard PC", ++ .init = pc_init_pci, ++ .max_cpus = 255, ++ .is_default = 1, ++}; ++ ++static void fedora_machine_init(void) ++{ ++ qemu_register_machine(&pc_machine_f13); ++} ++ ++machine_init(fedora_machine_init); +-- +1.6.6.1 + diff --git a/0046-pc-Add-backward-compatibility-options-for-virtio-ser.patch b/0046-pc-Add-backward-compatibility-options-for-virtio-ser.patch new file mode 100644 index 0000000..2c6c8fd --- /dev/null +++ b/0046-pc-Add-backward-compatibility-options-for-virtio-ser.patch @@ -0,0 +1,72 @@ +From f32e21e2828cf7a8aba2fb27945dc46ca2debe09 Mon Sep 17 00:00:00 2001 +From: Amit Shah +Date: Thu, 25 Feb 2010 18:41:14 +0530 +Subject: [PATCH] pc: Add backward compatibility options for virtio-serial + +virtio-serial-pci can support multiple ports in the current F-13 +version that will become upstream version 0.13. Add compatibility options +for the 0.12, 0.11 and 0.10 pc machine types. + +Based on upstream commit 8bfbde6d35c82cc376681289dae2de5e18a087a4 + +Signed-off-by: Amit Shah +--- + hw/pc.c | 28 ++++++++++++++++++++++++++++ + 1 files changed, 28 insertions(+), 0 deletions(-) + +diff --git a/hw/pc.c b/hw/pc.c +index 26c65c1..90bbfe8 100644 +--- a/hw/pc.c ++++ b/hw/pc.c +@@ -1330,6 +1330,18 @@ static QEMUMachine pc_machine = { + .desc = "Standard PC", + .init = pc_init_pci, + .max_cpus = 255, ++ .compat_props = (GlobalProperty[]) { ++ { ++ .driver = "virtio-serial-pci", ++ .property = "max_nr_ports", ++ .value = stringify(1), ++ },{ ++ .driver = "virtio-serial-pci", ++ .property = "vectors", ++ .value = stringify(0), ++ }, ++ { /* end of list */ } ++ } + }; + + static QEMUMachine pc_machine_v0_11 = { +@@ -1351,6 +1363,14 @@ static QEMUMachine pc_machine_v0_11 = { + .property = "ver", + .value = "0.11", + },{ ++ .driver = "virtio-serial-pci", ++ .property = "max_nr_ports", ++ .value = stringify(1), ++ },{ ++ .driver = "virtio-serial-pci", ++ .property = "vectors", ++ .value = stringify(0), ++ },{ + .driver = "PCI", + .property = "rombar", + .value = stringify(0), +@@ -1374,6 +1394,14 @@ static QEMUMachine pc_machine_v0_10 = { + .property = "class", + .value = stringify(PCI_CLASS_DISPLAY_OTHER), + },{ ++ .driver = "virtio-serial-pci", ++ .property = "max_nr_ports", ++ .value = stringify(1), ++ },{ ++ .driver = "virtio-serial-pci", ++ .property = "vectors", ++ .value = stringify(0), ++ },{ + .driver = "virtio-net-pci", + .property = "vectors", + .value = stringify(0), +-- +1.6.6.1 + diff --git a/0047-virtio-serial-don-t-set-MULTIPORT-for-1-port-dev.patch b/0047-virtio-serial-don-t-set-MULTIPORT-for-1-port-dev.patch new file mode 100644 index 0000000..997898d --- /dev/null +++ b/0047-virtio-serial-don-t-set-MULTIPORT-for-1-port-dev.patch @@ -0,0 +1,39 @@ +From e3b132568eef8491decbe30639a9814bdd2d82c0 Mon Sep 17 00:00:00 2001 +From: Michael S. Tsirkin +Date: Thu, 25 Feb 2010 18:41:15 +0530 +Subject: [PATCH] virtio-serial: don't set MULTIPORT for 1 port dev + +Since commit 98b19252cf1bd97c54bc4613f3537c5ec0aae263, all +serial devices declare MULTIPORT feature. +To allow 0.12 compatibility, we should clear this when +max_nr_ports is 1. + +Upsream commit: ee4d45be0d791eb8bb0f767cd0f17ea8f697281b + +Signed-off-by: Michael S. Tsirkin +Signed-off-by: Amit Shah +Signed-off-by: Anthony Liguori +--- + hw/virtio-serial-bus.c | 6 ++++-- + 1 files changed, 4 insertions(+), 2 deletions(-) + +diff --git a/hw/virtio-serial-bus.c b/hw/virtio-serial-bus.c +index ab456ea..d0e0219 100644 +--- a/hw/virtio-serial-bus.c ++++ b/hw/virtio-serial-bus.c +@@ -335,8 +335,10 @@ static void handle_input(VirtIODevice *vdev, VirtQueue *vq) + + static uint32_t get_features(VirtIODevice *vdev, uint32_t features) + { +- features |= (1 << VIRTIO_CONSOLE_F_MULTIPORT); +- ++ VirtIOSerial *vser = DO_UPCAST(VirtIOSerial, vdev, vdev); ++ if (vser->bus->max_nr_ports > 1) { ++ features |= (1 << VIRTIO_CONSOLE_F_MULTIPORT); ++ } + return features; + } + +-- +1.6.6.1 + diff --git a/0048-virtio-serial-pci-Allow-MSI-to-be-disabled.patch b/0048-virtio-serial-pci-Allow-MSI-to-be-disabled.patch new file mode 100644 index 0000000..387ab87 --- /dev/null +++ b/0048-virtio-serial-pci-Allow-MSI-to-be-disabled.patch @@ -0,0 +1,44 @@ +From 8a881734bccddf707a42ba2effff699b824d3c8f Mon Sep 17 00:00:00 2001 +From: Amit Shah +Date: Thu, 25 Feb 2010 18:41:16 +0530 +Subject: [PATCH] virtio-serial: pci: Allow MSI to be disabled + +Michael noted we don't allow disabling of MSI for the virtio-serial-pci +device. Fix that. + +Upstream commit: 7b665b668aa92bf0bba696f085dff87539d95529 + +Signed-off-by: Amit Shah +CC: "Michael S. Tsirkin" +Signed-off-by: Anthony Liguori +--- + hw/virtio-pci.c | 6 +++--- + 1 files changed, 3 insertions(+), 3 deletions(-) + +diff --git a/hw/virtio-pci.c b/hw/virtio-pci.c +index 9a02682..636c8c3 100644 +--- a/hw/virtio-pci.c ++++ b/hw/virtio-pci.c +@@ -598,8 +598,8 @@ static int virtio_serial_init_pci(PCIDevice *pci_dev) + if (!vdev) { + return -1; + } +- vdev->nvectors = proxy->nvectors ? proxy->nvectors +- : proxy->max_virtserial_ports + 1; ++ vdev->nvectors = proxy->nvectors == -1 ? proxy->max_virtserial_ports + 1 ++ : proxy->nvectors; + virtio_init_pci(proxy, vdev, + PCI_VENDOR_ID_REDHAT_QUMRANET, + PCI_DEVICE_ID_VIRTIO_CONSOLE, +@@ -683,7 +683,7 @@ static PCIDeviceInfo virtio_info[] = { + .init = virtio_serial_init_pci, + .exit = virtio_exit_pci, + .qdev.props = (Property[]) { +- DEFINE_PROP_UINT32("vectors", VirtIOPCIProxy, nvectors, 0), ++ DEFINE_PROP_UINT32("vectors", VirtIOPCIProxy, nvectors, -1), + DEFINE_PROP_HEX32("class", VirtIOPCIProxy, class_code, 0), + DEFINE_VIRTIO_COMMON_FEATURES(VirtIOPCIProxy, host_features), + DEFINE_PROP_UINT32("max_ports", VirtIOPCIProxy, max_virtserial_ports, +-- +1.6.6.1 + diff --git a/qemu-tap-add-vhost-vhostfd-options.patch b/qemu-tap-add-vhost-vhostfd-options.patch index 462d08f..1a3dfb9 100644 --- a/qemu-tap-add-vhost-vhostfd-options.patch +++ b/qemu-tap-add-vhost-vhostfd-options.patch @@ -64,7 +64,7 @@ index 7e9ca79..d9f2e41 100644 return s; } -@@ -456,6 +464,27 @@ int net_init_tap(QemuOpts *opts, Monitor *mon, const char *name, VLANState *vlan +@@ -456,5 +464,26 @@ int net_init_tap(QemuOpts *opts, Monitor *mon, const char *name, VLANState *vlan } } @@ -89,9 +89,8 @@ index 7e9ca79..d9f2e41 100644 + return -1; + } + - if (vlan) { - vlan->nb_host_devs++; - } + return 0; + } diff --git a/qemu-options.hx b/qemu-options.hx index ca73ba5..2b3d9b8 100644 --- a/qemu-options.hx diff --git a/qemu.spec b/qemu.spec index 53d381b..35cf701 100644 --- a/qemu.spec +++ b/qemu.spec @@ -1,7 +1,7 @@ Summary: QEMU is a FAST! processor emulator Name: qemu -Version: 0.12.2 -Release: 6%{?dist} +Version: 0.12.3 +Release: 1%{?dist} # Epoch because we pushed a qemu-1.0 package Epoch: 2 License: GPLv2+ and LGPLv2+ and BSD @@ -66,6 +66,19 @@ Patch35: qemu-virtio-serial-features-build-fix.patch Patch36: qemu-virtio-pci-irqfd-fix-nonkvm-build.patch Patch37: qemu-vhost-add-configure-check.patch +# Fixes from upstream +Patch38: 0038-msix-migration-fix.patch +Patch39: 0039-vhost-logging-thinko-fix.patch +Patch40: 0040-vhost-move-vhost_set_vq_addr.patch +Patch41: 0041-vhost-used-addr-migration-fix.patch +Patch42: 0042-vhost-fix-used-logging-size-math.patch +Patch43: 0043-vhost-logging-mistake-enable-not-disable-log.patch +Patch44: 0044-vhost-fix-log-base.patch +Patch45: 0045-pc-Add-a-Fedora-13-machine-type-that-contains-backpo.patch +Patch46: 0046-pc-Add-backward-compatibility-options-for-virtio-ser.patch +Patch47: 0047-virtio-serial-don-t-set-MULTIPORT-for-1-port-dev.patch +Patch48: 0048-virtio-serial-pci-Allow-MSI-to-be-disabled.patch + BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) BuildRequires: SDL-devel zlib-devel which texi2html gnutls-devel cyrus-sasl-devel @@ -291,6 +304,17 @@ such as kvmtrace and kvm_stat. %patch35 -p1 %patch36 -p1 %patch37 -p1 +%patch38 -p1 +%patch39 -p1 +%patch40 -p1 +%patch41 -p1 +%patch42 -p1 +%patch43 -p1 +%patch44 -p1 +%patch45 -p1 +%patch46 -p1 +%patch47 -p1 +%patch48 -p1 %build # --build-id option is used fedora 8 onwards for giving info to the debug packages. @@ -574,6 +598,12 @@ fi %{_mandir}/man1/qemu-img.1* %changelog +* Fri Feb 26 2010 Justin M. Forbes - 2:0.12.3-1 +- Update to 0.12.3 upstream +- vhost-net migration/restart fixes +- Add F-13 machine type +- virtio-serial fixes + * Tue Feb 09 2010 Justin M. Forbes - 2:0.12.2-6 - Add vhost net support. diff --git a/sources b/sources index a41a2f3..c17d439 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -8e6f3666de038c2ee11cebc45ffa89e4 qemu-kvm-0.12.2.tar.gz +ab484975004f66fb48cb5589bd9b9dcb qemu-kvm-0.12.3.tar.gz