[Spice-commits] 6 commits - hw/core hw/i386 hw/net hw/virtio include/hw tcg/tci
Gerd Hoffmann
kraxel at kemper.freedesktop.org
Wed Jul 15 02:39:15 PDT 2015
hw/core/qdev-properties.c | 2 +-
hw/i386/pc_piix.c | 2 +-
hw/net/virtio-net.c | 1 -
hw/virtio/virtio-pci.c | 6 ++++--
include/hw/qdev-properties.h | 2 +-
tcg/tci/tcg-target.c | 6 ------
6 files changed, 7 insertions(+), 12 deletions(-)
New commits:
commit f3a1b5068cea303a55e2a21a97e66d057eaae638
Merge: 6e3c0c6 4421c6a
Author: Peter Maydell <peter.maydell at linaro.org>
Date: Mon Jul 13 13:35:51 2015 +0100
Merge remote-tracking branch 'remotes/mst/tags/for_upstream' into staging
pc,virtio: fixes for 2.4
pc and virtio changes, bugfixes only.
Signed-off-by: Michael S. Tsirkin <mst at redhat.com>
# gpg: Signature made Mon Jul 13 13:03:38 2015 BST using RSA key ID D28D5469
# gpg: Good signature from "Michael S. Tsirkin <mst at kernel.org>"
# gpg: aka "Michael S. Tsirkin <mst at redhat.com>"
* remotes/mst/tags/for_upstream:
pc: fix reuse of pc-i440fx-2.4 in pc-i440fx-2.3
Revert "virtio-net: enable virtio 1.0"
virtio-pci: don't crash on illegal length
qdev: fix 64 bit properties
Signed-off-by: Peter Maydell <peter.maydell at linaro.org>
commit 4421c6a38a37d558b8e6f82d2d54aee30350f57f
Author: Eduardo Habkost <ehabkost at redhat.com>
Date: Tue Jun 23 14:00:51 2015 -0300
pc: fix reuse of pc-i440fx-2.4 in pc-i440fx-2.3
commit fddd179ab962f6f78a8493742e1068d6a620e059,
"pc: Convert *_MACHINE_OPTIONS macros into functions"
broke the chaining of *_machine_options() functions on
pc-i440fx-2.3, at:
-#define PC_I440FX_2_3_MACHINE_OPTIONS \
- PC_I440FX_2_4_MACHINE_OPTIONS, \
- .alias = NULL, \
- .is_default = 0
+static void pc_i440fx_2_3_machine_options(QEMUMachine *m)
+{
+ pc_i440fx_machine_options(m);
+ m->alias = NULL;
+ m->is_default = 0;
+}
I have replaced PC_I440FX_2_4_MACHINE_OPTIONS with a
pc_i440fx_machine_options() call, instead of calling
pc_i440fx_2_4_machine_options(). This broke the setting of default_machine_opts
and default_display on pc-i440fx-{2.0,2,1,2.2,2.3}.
Fix this by making pc_i440fx_2_3_machine_options() reuse
pc_i440fx_2_4_machine_options().
Reported-by: "Dr. David Alan Gilbert" <dgilbert at redhat.com>
Signed-off-by: Eduardo Habkost <ehabkost at redhat.com>
Signed-off-by: Michael Roth <mdroth at linux.vnet.ibm.com>
Reviewed-by: Michael S. Tsirkin <mst at redhat.com>
Signed-off-by: Michael S. Tsirkin <mst at redhat.com>
Reviewed-by: Laszlo Ersek <lersek at redhat.com>
diff --git a/hw/i386/pc_piix.c b/hw/i386/pc_piix.c
index 0f99fdc..916d626 100644
--- a/hw/i386/pc_piix.c
+++ b/hw/i386/pc_piix.c
@@ -490,7 +490,7 @@ DEFINE_I440FX_MACHINE(v2_4, "pc-i440fx-2.4", NULL,
static void pc_i440fx_2_3_machine_options(MachineClass *m)
{
- pc_i440fx_machine_options(m);
+ pc_i440fx_2_4_machine_options(m);
m->alias = NULL;
m->is_default = 0;
SET_MACHINE_COMPAT(m, PC_COMPAT_2_3);
commit 06c4670ff6d4acdc5a24e3d25748ee4a489d5869
Author: Jason Wang <jasowang at redhat.com>
Date: Mon Jul 13 13:46:50 2015 +0800
Revert "virtio-net: enable virtio 1.0"
This reverts commit df91055db5c9cee93d70ca8c08d72119a240b987.
This is because:
- vhost support virtio 1.0 now
- transport code (e.g virtio-pci) set this feature when modern is
enabled, setting this unconditionally will break disable-modern=on.
Cc: Cornelia Huck <cornelia.huck at de.ibm.com>
Signed-off-by: Jason Wang <jasowang at redhat.com>
Reviewed-by: Michael S. Tsirkin <mst at redhat.com>
Signed-off-by: Michael S. Tsirkin <mst at redhat.com>
diff --git a/hw/net/virtio-net.c b/hw/net/virtio-net.c
index d728233..e3c2db3 100644
--- a/hw/net/virtio-net.c
+++ b/hw/net/virtio-net.c
@@ -466,7 +466,6 @@ static uint64_t virtio_net_get_features(VirtIODevice *vdev, uint64_t features)
}
if (!get_vhost_net(nc->peer)) {
- virtio_add_feature(&features, VIRTIO_F_VERSION_1);
return features;
}
return vhost_net_get_features(get_vhost_net(nc->peer), features);
commit 2a6391232fa58f32469fb61d55343eff32a91083
Author: Michael S. Tsirkin <mst at redhat.com>
Date: Mon Jul 13 10:32:50 2015 +0300
virtio-pci: don't crash on illegal length
Some guests seem to access cfg with an illegal length value.
It's worth fixing them but debugging is easier if
qemu does not crash.
Signed-off-by: Michael S. Tsirkin <mst at redhat.com>
diff --git a/hw/virtio/virtio-pci.c b/hw/virtio/virtio-pci.c
index 6ca0258..c5e8cc0 100644
--- a/hw/virtio/virtio-pci.c
+++ b/hw/virtio/virtio-pci.c
@@ -546,7 +546,8 @@ static void virtio_write_config(PCIDevice *pci_dev, uint32_t address,
off = le32_to_cpu(cfg->cap.offset);
len = le32_to_cpu(cfg->cap.length);
- if (len <= sizeof cfg->pci_cfg_data) {
+ if (len == 1 || len == 2 || len == 4) {
+ assert(len <= sizeof cfg->pci_cfg_data);
virtio_address_space_write(&proxy->modern_as, off,
cfg->pci_cfg_data, len);
}
@@ -570,7 +571,8 @@ static uint32_t virtio_read_config(PCIDevice *pci_dev,
off = le32_to_cpu(cfg->cap.offset);
len = le32_to_cpu(cfg->cap.length);
- if (len <= sizeof cfg->pci_cfg_data) {
+ if (len == 1 || len == 2 || len == 4) {
+ assert(len <= sizeof cfg->pci_cfg_data);
virtio_address_space_read(&proxy->modern_as, off,
cfg->pci_cfg_data, len);
}
commit 8aedc369c6ae4fb4c4c6920f703b000015df3d8d
Author: Cornelia Huck <cornelia.huck at de.ibm.com>
Date: Thu Jul 9 13:01:14 2015 +0200
qdev: fix 64 bit properties
64 bit props used 32 bit callbacks in two places, leading to broken
feature bits on virtio (example: got 0x31000000000006d4 which is
obviously bogus). Fix this.
Fixes: fdba6d96 ("qdev: add 64bit properties")
Signed-off-by: Cornelia Huck <cornelia.huck at de.ibm.com>
Reviewed-by: Michael S. Tsirkin <mst at redhat.com>
Signed-off-by: Michael S. Tsirkin <mst at redhat.com>
Tested-by: Christian Borntraeger <borntraeger at de.ibm.com>
Acked-by: Paolo Bonzini <pbonzini at redhat.com>
diff --git a/hw/core/qdev-properties.c b/hw/core/qdev-properties.c
index e9e686f..04fd80a 100644
--- a/hw/core/qdev-properties.c
+++ b/hw/core/qdev-properties.c
@@ -130,7 +130,7 @@ PropertyInfo qdev_prop_bit = {
static uint64_t qdev_get_prop_mask64(Property *prop)
{
- assert(prop->info == &qdev_prop_bit);
+ assert(prop->info == &qdev_prop_bit64);
return 0x1ull << prop->bitnr;
}
diff --git a/include/hw/qdev-properties.h b/include/hw/qdev-properties.h
index 0cfff1c..77538a8 100644
--- a/include/hw/qdev-properties.h
+++ b/include/hw/qdev-properties.h
@@ -53,7 +53,7 @@ extern PropertyInfo qdev_prop_arraylen;
}
#define DEFINE_PROP_BIT64(_name, _state, _field, _bit, _defval) { \
.name = (_name), \
- .info = &(qdev_prop_bit), \
+ .info = &(qdev_prop_bit64), \
.bitnr = (_bit), \
.offset = offsetof(_state, _field) \
+ type_check(uint64_t, typeof_field(_state, _field)), \
commit 6e3c0c6edbdddb8dd676bec1ac51b5faffc19a77
Author: Stefan Weil <sw at weilnetz.de>
Date: Fri Jul 10 21:22:39 2015 +0200
tci: Fix regression with INDEX_op_qemu_st_i32, INDEX_op_qemu_st_i64
Commit 59227d5d45bb3c31dc2118011691c35b3c00879c did not update the
code in tcg/tci/tcg-target.c for those two cases.
Signed-off-by: Stefan Weil <sw at weilnetz.de>
Message-id: 1436556159-3002-1-git-send-email-sw at weilnetz.de
Reviewed-by: Richard Henderson <rth at twiddle.net>
Signed-off-by: Peter Maydell <peter.maydell at linaro.org>
diff --git a/tcg/tci/tcg-target.c b/tcg/tci/tcg-target.c
index 10affab..83472db 100644
--- a/tcg/tci/tcg-target.c
+++ b/tcg/tci/tcg-target.c
@@ -782,9 +782,6 @@ static void tcg_out_op(TCGContext *s, TCGOpcode opc, const TCGArg *args,
tcg_out_r(s, *args++);
}
tcg_out_i(s, *args++);
-#ifdef CONFIG_SOFTMMU
- tcg_out_i(s, *args);
-#endif
break;
case INDEX_op_qemu_st_i64:
tcg_out_r(s, *args++);
@@ -796,9 +793,6 @@ static void tcg_out_op(TCGContext *s, TCGOpcode opc, const TCGArg *args,
tcg_out_r(s, *args++);
}
tcg_out_i(s, *args++);
-#ifdef CONFIG_SOFTMMU
- tcg_out_i(s, *args);
-#endif
break;
case INDEX_op_mov_i32: /* Always emitted via tcg_out_mov. */
case INDEX_op_mov_i64:
More information about the Spice-commits
mailing list