Update to 0.12.3 upstream vhost-net migration/restart fixes Add F-13
machine type virtio-serial fixes
This commit is contained in:
parent
272dfe37a0
commit
eff9421965
@ -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
|
||||
|
43
0038-msix-migration-fix.patch
Normal file
43
0038-msix-migration-fix.patch
Normal file
@ -0,0 +1,43 @@
|
||||
From af483cb870ad81dce8e10215e0add284fcc38da4 Mon Sep 17 00:00:00 2001
|
||||
From: Michael S. Tsirkin <mst@redhat.com>
|
||||
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 <mst@redhat.com>
|
||||
---
|
||||
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
|
||||
|
28
0039-vhost-logging-thinko-fix.patch
Normal file
28
0039-vhost-logging-thinko-fix.patch
Normal file
@ -0,0 +1,28 @@
|
||||
From c96adfe57a5a7ceed488fd6f198a762dd84c1d9c Mon Sep 17 00:00:00 2001
|
||||
From: Michael S. Tsirkin <mst@redhat.com>
|
||||
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 <mst@redhat.com>
|
||||
---
|
||||
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
|
||||
|
72
0040-vhost-move-vhost_set_vq_addr.patch
Normal file
72
0040-vhost-move-vhost_set_vq_addr.patch
Normal file
@ -0,0 +1,72 @@
|
||||
From 575c00a2880177295a116d43132566143af69a0b Mon Sep 17 00:00:00 2001
|
||||
From: Michael S. Tsirkin <mst@redhat.com>
|
||||
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 <mst@redhat.com>
|
||||
---
|
||||
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
|
||||
|
70
0041-vhost-used-addr-migration-fix.patch
Normal file
70
0041-vhost-used-addr-migration-fix.patch
Normal file
@ -0,0 +1,70 @@
|
||||
From ac48d782f3b91b2e9962ded5f8a55bd3929a82a5 Mon Sep 17 00:00:00 2001
|
||||
From: Michael S. Tsirkin <mst@redhat.com>
|
||||
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 <mst@redhat.com>
|
||||
---
|
||||
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
|
||||
|
37
0042-vhost-fix-used-logging-size-math.patch
Normal file
37
0042-vhost-fix-used-logging-size-math.patch
Normal file
@ -0,0 +1,37 @@
|
||||
From 91c827f000a94908b043b5de68eb0cd4fb6ff83d Mon Sep 17 00:00:00 2001
|
||||
From: Michael S. Tsirkin <mst@redhat.com>
|
||||
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 <mst@redhat.com>
|
||||
---
|
||||
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
|
||||
|
26
0043-vhost-logging-mistake-enable-not-disable-log.patch
Normal file
26
0043-vhost-logging-mistake-enable-not-disable-log.patch
Normal file
@ -0,0 +1,26 @@
|
||||
From b4654f7911adb1352c2c47c76f650e8419a20b91 Mon Sep 17 00:00:00 2001
|
||||
From: Michael S. Tsirkin <mst@redhat.com>
|
||||
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
|
||||
|
38
0044-vhost-fix-log-base.patch
Normal file
38
0044-vhost-fix-log-base.patch
Normal file
@ -0,0 +1,38 @@
|
||||
From d42430f94c77a653da486e6f96f6695818f3e81b Mon Sep 17 00:00:00 2001
|
||||
From: Michael S. Tsirkin <mst@redhat.com>
|
||||
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 <mst@redhat.com>
|
||||
---
|
||||
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
|
||||
|
@ -0,0 +1,62 @@
|
||||
From 9aa404a57823c9fbf2bf2e0189d31a2b0d8bf3b9 Mon Sep 17 00:00:00 2001
|
||||
From: Amit Shah <amit.shah@redhat.com>
|
||||
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 <amit.shah@redhat.com>
|
||||
---
|
||||
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
|
||||
|
@ -0,0 +1,72 @@
|
||||
From f32e21e2828cf7a8aba2fb27945dc46ca2debe09 Mon Sep 17 00:00:00 2001
|
||||
From: Amit Shah <amit.shah@redhat.com>
|
||||
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 <amit.shah@redhat.com>
|
||||
---
|
||||
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
|
||||
|
39
0047-virtio-serial-don-t-set-MULTIPORT-for-1-port-dev.patch
Normal file
39
0047-virtio-serial-don-t-set-MULTIPORT-for-1-port-dev.patch
Normal file
@ -0,0 +1,39 @@
|
||||
From e3b132568eef8491decbe30639a9814bdd2d82c0 Mon Sep 17 00:00:00 2001
|
||||
From: Michael S. Tsirkin <mst@redhat.com>
|
||||
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 <mst@redhat.com>
|
||||
Signed-off-by: Amit Shah <amit.shah@redhat.com>
|
||||
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
|
||||
---
|
||||
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
|
||||
|
44
0048-virtio-serial-pci-Allow-MSI-to-be-disabled.patch
Normal file
44
0048-virtio-serial-pci-Allow-MSI-to-be-disabled.patch
Normal file
@ -0,0 +1,44 @@
|
||||
From 8a881734bccddf707a42ba2effff699b824d3c8f Mon Sep 17 00:00:00 2001
|
||||
From: Amit Shah <amit.shah@redhat.com>
|
||||
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 <amit.shah@redhat.com>
|
||||
CC: "Michael S. Tsirkin" <mst@redhat.com>
|
||||
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
|
||||
---
|
||||
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
|
||||
|
@ -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
|
||||
|
34
qemu.spec
34
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 <jforbes@redhat.com> - 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 <jforbes@redhat.com> - 2:0.12.2-6
|
||||
- Add vhost net support.
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user