qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] [PULL 01/25] aml-build: don't modify child
       [not found] <1426096767-30494-1-git-send-email-mst@redhat.com>
@ 2015-03-11 19:50 ` Michael S. Tsirkin
  2015-03-11 19:50 ` [Qemu-devel] [PULL 02/25] aml-build: append opcodes using build_append_byte Michael S. Tsirkin
                   ` (23 subsequent siblings)
  24 siblings, 0 replies; 25+ messages in thread
From: Michael S. Tsirkin @ 2015-03-11 19:50 UTC (permalink / raw)
  To: qemu-devel; +Cc: Peter Maydell, Igor Mammedov

this code:
    aml_append(foo, bar);

might, non-intuitively, modify bar, which means that e.g. the following
might not DTRT:

    c = ....;
    aml_append(a, c);
    aml_append(b, c);

to fix, simply allocate an intermediate array,
and always modify that.

Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Reviewed-by: Igor Mammedov <imammedo@redhat.com>
---
 hw/acpi/aml-build.c | 16 ++++++++++------
 1 file changed, 10 insertions(+), 6 deletions(-)

diff --git a/hw/acpi/aml-build.c b/hw/acpi/aml-build.c
index 876cada..ff12b28 100644
--- a/hw/acpi/aml-build.c
+++ b/hw/acpi/aml-build.c
@@ -335,26 +335,29 @@ static void build_buffer(GArray *array, uint8_t op)
 
 void aml_append(Aml *parent_ctx, Aml *child)
 {
+    GArray *buf = build_alloc_array();
+    build_append_array(buf, child->buf);
+
     switch (child->block_flags) {
     case AML_OPCODE:
         build_append_byte(parent_ctx->buf, child->op);
         break;
     case AML_EXT_PACKAGE:
-        build_extop_package(child->buf, child->op);
+        build_extop_package(buf, child->op);
         break;
     case AML_PACKAGE:
-        build_package(child->buf, child->op);
+        build_package(buf, child->op);
         break;
     case AML_RES_TEMPLATE:
-        build_append_byte(child->buf, 0x79); /* EndTag */
+        build_append_byte(buf, 0x79); /* EndTag */
         /*
          * checksum operations are treated as succeeded if checksum
          * field is zero. [ACPI Spec 1.0b, 6.4.2.8 End Tag]
          */
-        build_append_byte(child->buf, 0);
+        build_append_byte(buf, 0);
         /* fall through, to pack resources in buffer */
     case AML_BUFFER:
-        build_buffer(child->buf, child->op);
+        build_buffer(buf, child->op);
         break;
     case AML_NO_OPCODE:
         break;
@@ -362,7 +365,8 @@ void aml_append(Aml *parent_ctx, Aml *child)
         assert(0);
         break;
     }
-    build_append_array(parent_ctx->buf, child->buf);
+    build_append_array(parent_ctx->buf, buf);
+    build_free_array(buf);
 }
 
 /* ACPI 1.0b: 16.2.5.1 Namespace Modifier Objects Encoding: DefScope */
-- 
MST

^ permalink raw reply related	[flat|nested] 25+ messages in thread

* [Qemu-devel] [PULL 02/25] aml-build: append opcodes using build_append_byte
       [not found] <1426096767-30494-1-git-send-email-mst@redhat.com>
  2015-03-11 19:50 ` [Qemu-devel] [PULL 01/25] aml-build: don't modify child Michael S. Tsirkin
@ 2015-03-11 19:50 ` Michael S. Tsirkin
  2015-03-11 19:50 ` [Qemu-devel] [PULL 03/25] acpi: fix aml_equal term implementation Michael S. Tsirkin
                   ` (22 subsequent siblings)
  24 siblings, 0 replies; 25+ messages in thread
From: Michael S. Tsirkin @ 2015-03-11 19:50 UTC (permalink / raw)
  To: qemu-devel; +Cc: Peter Maydell, Igor Mammedov

Opcodes are raw bytes, they shouldn't be added
using build_append_int. This only happens to work
with 0 and 1 opcodes.

Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Reviewed-by: Igor Mammedov <imammedo@redhat.com>
---
 hw/acpi/aml-build.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/hw/acpi/aml-build.c b/hw/acpi/aml-build.c
index ff12b28..e01b8c2 100644
--- a/hw/acpi/aml-build.c
+++ b/hw/acpi/aml-build.c
@@ -112,7 +112,7 @@ build_append_namestringv(GArray *array, const char *format, va_list ap)
     switch (seg_count) {
     case 1:
         if (!*s) {
-            build_append_byte(array, 0x0); /* NullName */
+            build_append_byte(array, 0x00); /* NullName */
         } else {
             build_append_nameseg(array, s);
         }
@@ -448,7 +448,7 @@ Aml *aml_and(Aml *arg1, Aml *arg2)
     Aml *var = aml_opcode(0x7B /* AndOp */);
     aml_append(var, arg1);
     aml_append(var, arg2);
-    build_append_int(var->buf, 0x00 /* NullNameOp */);
+    build_append_byte(var->buf, 0x00 /* NullNameOp */);
     return var;
 }
 
@@ -546,7 +546,7 @@ Aml *aml_equal(Aml *arg1, Aml *arg2)
     Aml *var = aml_opcode(0x93 /* LequalOp */);
     aml_append(var, arg1);
     aml_append(var, arg2);
-    build_append_int(var->buf, 0x00); /* NullNameOp */
+    build_append_byte(var->buf, 0x00); /* NullNameOp */
     return var;
 }
 
-- 
MST

^ permalink raw reply related	[flat|nested] 25+ messages in thread

* [Qemu-devel] [PULL 03/25] acpi: fix aml_equal term implementation
       [not found] <1426096767-30494-1-git-send-email-mst@redhat.com>
  2015-03-11 19:50 ` [Qemu-devel] [PULL 01/25] aml-build: don't modify child Michael S. Tsirkin
  2015-03-11 19:50 ` [Qemu-devel] [PULL 02/25] aml-build: append opcodes using build_append_byte Michael S. Tsirkin
@ 2015-03-11 19:50 ` Michael S. Tsirkin
  2015-03-11 19:50 ` [Qemu-devel] [PULL 04/25] acpi-test: update expected files Michael S. Tsirkin
                   ` (21 subsequent siblings)
  24 siblings, 0 replies; 25+ messages in thread
From: Michael S. Tsirkin @ 2015-03-11 19:50 UTC (permalink / raw)
  To: qemu-devel; +Cc: Marcel Apfelbaum, Peter Maydell, Igor Mammedov

From: Marcel Apfelbaum <marcel@redhat.com>

The DefLEqual op does not have a target operand. Remove it.

Signed-off-by: Marcel Apfelbaum <marcel@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Reviewed-by: Igor Mammedov <imammedo@redhat.com>
---
 hw/acpi/aml-build.c | 1 -
 1 file changed, 1 deletion(-)

diff --git a/hw/acpi/aml-build.c b/hw/acpi/aml-build.c
index e01b8c2..ace180b 100644
--- a/hw/acpi/aml-build.c
+++ b/hw/acpi/aml-build.c
@@ -546,7 +546,6 @@ Aml *aml_equal(Aml *arg1, Aml *arg2)
     Aml *var = aml_opcode(0x93 /* LequalOp */);
     aml_append(var, arg1);
     aml_append(var, arg2);
-    build_append_byte(var->buf, 0x00); /* NullNameOp */
     return var;
 }
 
-- 
MST

^ permalink raw reply related	[flat|nested] 25+ messages in thread

* [Qemu-devel] [PULL 04/25] acpi-test: update expected files
       [not found] <1426096767-30494-1-git-send-email-mst@redhat.com>
                   ` (2 preceding siblings ...)
  2015-03-11 19:50 ` [Qemu-devel] [PULL 03/25] acpi: fix aml_equal term implementation Michael S. Tsirkin
@ 2015-03-11 19:50 ` Michael S. Tsirkin
  2015-03-11 19:50 ` [Qemu-devel] [PULL 05/25] pci/shpc: fix signed integer overflow Michael S. Tsirkin
                   ` (20 subsequent siblings)
  24 siblings, 0 replies; 25+ messages in thread
From: Michael S. Tsirkin @ 2015-03-11 19:50 UTC (permalink / raw)
  To: qemu-devel; +Cc: Peter Maydell

commit ecdc7bab095a2cf29d9e9d4a7e1494f586a8b270
    "acpi: fix aml_equal term implementation"
dropped a useless Zero in generated code,
update expected files appropriately.

Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
---
 tests/acpi-test-data/pc/SSDT         | Bin 2476 -> 2475 bytes
 tests/acpi-test-data/pc/SSDT.bridge  | Bin 4335 -> 4334 bytes
 tests/acpi-test-data/q35/SSDT        | Bin 681 -> 680 bytes
 tests/acpi-test-data/q35/SSDT.bridge | Bin 698 -> 697 bytes
 4 files changed, 0 insertions(+), 0 deletions(-)

diff --git a/tests/acpi-test-data/pc/SSDT b/tests/acpi-test-data/pc/SSDT
index 87c3e9fc0271f2b5826877a9f931c2428838f8a7..59be315237a835d886965a069c4c19ef9c0b293f 100644
GIT binary patch
delta 41
xcmZ1@yjqwmIM^j*H75fDBkxA8Xhuf2$!Uy>xCH$|+#;D4a81tGEX*{M9RT6q3he*@

delta 42
ycmZ22yhfNSIM^j*4JQKwBj-l0Xhuf&$!Uy>xP|;e+#;D4a8J%)*et{}lN|u-PYUe-

diff --git a/tests/acpi-test-data/pc/SSDT.bridge b/tests/acpi-test-data/pc/SSDT.bridge
index 325899a757221b732ec94101301d782b577b28a3..fa6136935caa32981bc14879af3ae9378cf01bcf 100644
GIT binary patch
delta 41
xcmaE__)d{4IM^lRod5#^W7tNnXhufQ$!Uy>xCH$|+#;D4a81tGEX;I=4*(3>3~vAc

delta 42
ycmaE-_+F7KIM^lRy#NCPW6(yfXhue_$!Uy>xP|;e+#;D4a8J%)*et|!hYtW3f(&l}

diff --git a/tests/acpi-test-data/q35/SSDT b/tests/acpi-test-data/q35/SSDT
index 6a5c0423b93dd9eda038dc4fd4af283f6bba9745..e87f5a35c15b9fc27dcab39f384b5c0f235ec93c 100644
GIT binary patch
delta 41
xcmZ3<x`LG}IM^j*1rq}U<K~TA{ESTg5|gDF7jg;ug}6mBE#R7*G5I*-BLLqG3&sEd

delta 42
ycmZ3%x{{SEIM^j*B@+V!<Gzht{ESQvl9Qzw7jg^vg}6mBE#RJ<!7%w4<0Am**bBx0

diff --git a/tests/acpi-test-data/q35/SSDT.bridge b/tests/acpi-test-data/q35/SSDT.bridge
index 5fc83a034002df64500970fa64f07b58bc15f3ea..b3cac34d70f3ef158232b8d3574dbae5c51b8f69 100644
GIT binary patch
delta 40
wcmdnRx|5YFIM^j*Cldn$W70-0env)z$x@7qxCH$|+#;D4a81sbe4Oz!0M+0NkpKVy

delta 41
xcmdnVx{H-7IM^j*7ZU>mW86kAenv*e$x@7qxP|;e+#;D4a8J%)n0$=!GXUQX3y}Z-

-- 
MST

^ permalink raw reply	[flat|nested] 25+ messages in thread

* [Qemu-devel] [PULL 05/25] pci/shpc: fix signed integer overflow
       [not found] <1426096767-30494-1-git-send-email-mst@redhat.com>
                   ` (3 preceding siblings ...)
  2015-03-11 19:50 ` [Qemu-devel] [PULL 04/25] acpi-test: update expected files Michael S. Tsirkin
@ 2015-03-11 19:50 ` Michael S. Tsirkin
  2015-03-11 19:50 ` [Qemu-devel] [PULL 06/25] machine: replace qemu opts with iommu property Michael S. Tsirkin
                   ` (19 subsequent siblings)
  24 siblings, 0 replies; 25+ messages in thread
From: Michael S. Tsirkin @ 2015-03-11 19:50 UTC (permalink / raw)
  To: qemu-devel; +Cc: Peter Maydell

clang undefined behaviour sanitizer reports:
> hw/pci/shpc.c:162:27: runtime error: left shift of 1 by 31 places
> cannot be represented in type 'int'

Caused by the usual lack of a 'U' qualifier on a constant 1 being
shifted left. Fix it up.

Reported-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
---
 hw/pci/shpc.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/hw/pci/shpc.c b/hw/pci/shpc.c
index 5fd7f4b..759910f 100644
--- a/hw/pci/shpc.c
+++ b/hw/pci/shpc.c
@@ -159,7 +159,7 @@ static void shpc_interrupt_update(PCIDevice *d)
     for (slot = 0; slot < shpc->nslots; ++slot) {
         uint8_t event = shpc->config[SHPC_SLOT_EVENT_LATCH(slot)];
         uint8_t disable = shpc->config[SHPC_SLOT_EVENT_SERR_INT_DIS(d, slot)];
-        uint32_t mask = 1 << SHPC_IDX_TO_LOGICAL(slot);
+        uint32_t mask = 1U << SHPC_IDX_TO_LOGICAL(slot);
         if (event & ~disable) {
             int_locator |= mask;
         }
-- 
MST

^ permalink raw reply related	[flat|nested] 25+ messages in thread

* [Qemu-devel] [PULL 06/25] machine: replace qemu opts with iommu property
       [not found] <1426096767-30494-1-git-send-email-mst@redhat.com>
                   ` (4 preceding siblings ...)
  2015-03-11 19:50 ` [Qemu-devel] [PULL 05/25] pci/shpc: fix signed integer overflow Michael S. Tsirkin
@ 2015-03-11 19:50 ` Michael S. Tsirkin
  2015-03-11 19:50 ` [Qemu-devel] [PULL 07/25] machine: allowed/required kernel-irqchip support Michael S. Tsirkin
                   ` (18 subsequent siblings)
  24 siblings, 0 replies; 25+ messages in thread
From: Michael S. Tsirkin @ 2015-03-11 19:50 UTC (permalink / raw)
  To: qemu-devel; +Cc: Marcel Apfelbaum, Peter Maydell, Paolo Bonzini

From: Marcel Apfelbaum <marcel@redhat.com>

Fixes a QEMU crash when passing iommu parameter in command line.
Running
    x86_64-softmmu/qemu-system-x86_64 -machine pc,iommu=on -enable-kvm
leads to crash:
    qemu-system-x86_64: qemu/util/qemu-option.c:387: qemu_opt_get_bool_helper:
    Assertion `opt->desc && opt->desc->type == QEMU_OPT_BOOL' failed.
    Aborted (core dumped)

This happens because commit e79d5a6 ("machine: remove qemu_machine_opts global
list") removed the global option descriptions and moved them to MachineState's
QOM properties.

Fix this by querying machine properties through designated wrappers.

Signed-off-by: Marcel Apfelbaum <marcel@redhat.com>
Acked-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
---
 include/hw/boards.h | 1 +
 hw/core/machine.c   | 5 +++++
 hw/pci-host/q35.c   | 2 +-
 3 files changed, 7 insertions(+), 1 deletion(-)

diff --git a/include/hw/boards.h b/include/hw/boards.h
index 3ddc449..a12f041 100644
--- a/include/hw/boards.h
+++ b/include/hw/boards.h
@@ -66,6 +66,7 @@ MachineClass *find_default_machine(void);
 extern MachineState *current_machine;
 
 bool machine_usb(MachineState *machine);
+bool machine_iommu(MachineState *machine);
 
 /**
  * MachineClass:
diff --git a/hw/core/machine.c b/hw/core/machine.c
index fbd91be..096eb10 100644
--- a/hw/core/machine.c
+++ b/hw/core/machine.c
@@ -403,6 +403,11 @@ bool machine_usb(MachineState *machine)
     return machine->usb;
 }
 
+bool machine_iommu(MachineState *machine)
+{
+    return machine->iommu;
+}
+
 static const TypeInfo machine_info = {
     .name = TYPE_MACHINE,
     .parent = TYPE_OBJECT,
diff --git a/hw/pci-host/q35.c b/hw/pci-host/q35.c
index df60e61..c8827cc 100644
--- a/hw/pci-host/q35.c
+++ b/hw/pci-host/q35.c
@@ -415,7 +415,7 @@ static void mch_realize(PCIDevice *d, Error **errp)
                  PAM_EXPAN_BASE + i * PAM_EXPAN_SIZE, PAM_EXPAN_SIZE);
     }
     /* Intel IOMMU (VT-d) */
-    if (qemu_opt_get_bool(qemu_get_machine_opts(), "iommu", false)) {
+    if (machine_iommu(current_machine)) {
         mch_init_dmar(mch);
     }
 }
-- 
MST

^ permalink raw reply related	[flat|nested] 25+ messages in thread

* [Qemu-devel] [PULL 07/25] machine: allowed/required kernel-irqchip support
       [not found] <1426096767-30494-1-git-send-email-mst@redhat.com>
                   ` (5 preceding siblings ...)
  2015-03-11 19:50 ` [Qemu-devel] [PULL 06/25] machine: replace qemu opts with iommu property Michael S. Tsirkin
@ 2015-03-11 19:50 ` Michael S. Tsirkin
  2015-03-11 19:50 ` [Qemu-devel] [PULL 08/25] machine: query kernel-irqchip property Michael S. Tsirkin
                   ` (17 subsequent siblings)
  24 siblings, 0 replies; 25+ messages in thread
From: Michael S. Tsirkin @ 2015-03-11 19:50 UTC (permalink / raw)
  To: qemu-devel
  Cc: Peter Maydell, Eduardo Habkost, Alexander Graf, Marcel Apfelbaum,
	Paolo Bonzini, =?UTF-8?q?Andreas=20F=C3=A4rber?=

From: Marcel Apfelbaum <marcel@redhat.com>

The code using kernel-irqchip property requires 'allowed/required'
functionality. Replace machine's kernel_irqchip field with two fields
representing the new functionality and expose them through wrappers.

Signed-off-by: Marcel Apfelbaum <marcel@redhat.com>
Acked-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
---
 include/hw/boards.h |  5 ++++-
 hw/core/machine.c   | 24 +++++++++++++++---------
 2 files changed, 19 insertions(+), 10 deletions(-)

diff --git a/include/hw/boards.h b/include/hw/boards.h
index a12f041..69ab606 100644
--- a/include/hw/boards.h
+++ b/include/hw/boards.h
@@ -67,6 +67,8 @@ extern MachineState *current_machine;
 
 bool machine_usb(MachineState *machine);
 bool machine_iommu(MachineState *machine);
+bool machine_kernel_irqchip_allowed(MachineState *machine);
+bool machine_kernel_irqchip_required(MachineState *machine);
 
 /**
  * MachineClass:
@@ -125,7 +127,8 @@ struct MachineState {
     /*< public >*/
 
     char *accel;
-    bool kernel_irqchip;
+    bool kernel_irqchip_allowed;
+    bool kernel_irqchip_required;
     int kvm_shadow_mem;
     char *dtb;
     char *dumpdtb;
diff --git a/hw/core/machine.c b/hw/core/machine.c
index 096eb10..e04e5ab 100644
--- a/hw/core/machine.c
+++ b/hw/core/machine.c
@@ -31,18 +31,12 @@ static void machine_set_accel(Object *obj, const char *value, Error **errp)
     ms->accel = g_strdup(value);
 }
 
-static bool machine_get_kernel_irqchip(Object *obj, Error **errp)
-{
-    MachineState *ms = MACHINE(obj);
-
-    return ms->kernel_irqchip;
-}
-
 static void machine_set_kernel_irqchip(Object *obj, bool value, Error **errp)
 {
     MachineState *ms = MACHINE(obj);
 
-    ms->kernel_irqchip = value;
+    ms->kernel_irqchip_allowed = value;
+    ms->kernel_irqchip_required = value;
 }
 
 static void machine_get_kvm_shadow_mem(Object *obj, Visitor *v,
@@ -289,13 +283,15 @@ static void machine_initfn(Object *obj)
 {
     MachineState *ms = MACHINE(obj);
 
+    ms->kernel_irqchip_allowed = true;
+
     object_property_add_str(obj, "accel",
                             machine_get_accel, machine_set_accel, NULL);
     object_property_set_description(obj, "accel",
                                     "Accelerator list",
                                     NULL);
     object_property_add_bool(obj, "kernel-irqchip",
-                             machine_get_kernel_irqchip,
+                             NULL,
                              machine_set_kernel_irqchip,
                              NULL);
     object_property_set_description(obj, "kernel-irqchip",
@@ -408,6 +404,16 @@ bool machine_iommu(MachineState *machine)
     return machine->iommu;
 }
 
+bool machine_kernel_irqchip_allowed(MachineState *machine)
+{
+    return machine->kernel_irqchip_allowed;
+}
+
+bool machine_kernel_irqchip_required(MachineState *machine)
+{
+    return machine->kernel_irqchip_required;
+}
+
 static const TypeInfo machine_info = {
     .name = TYPE_MACHINE,
     .parent = TYPE_OBJECT,
-- 
MST

^ permalink raw reply related	[flat|nested] 25+ messages in thread

* [Qemu-devel] [PULL 08/25] machine: query kernel-irqchip property
       [not found] <1426096767-30494-1-git-send-email-mst@redhat.com>
                   ` (6 preceding siblings ...)
  2015-03-11 19:50 ` [Qemu-devel] [PULL 07/25] machine: allowed/required kernel-irqchip support Michael S. Tsirkin
@ 2015-03-11 19:50 ` Michael S. Tsirkin
  2015-03-11 19:51 ` [Qemu-devel] [PULL 09/25] kvm: add machine state to kvm_arch_init Michael S. Tsirkin
                   ` (16 subsequent siblings)
  24 siblings, 0 replies; 25+ messages in thread
From: Michael S. Tsirkin @ 2015-03-11 19:50 UTC (permalink / raw)
  To: qemu-devel
  Cc: Peter Maydell, kvm, Alexander Graf, Scott Wood, qemu-ppc,
	Marcel Apfelbaum, Paolo Bonzini

From: Marcel Apfelbaum <marcel@redhat.com>

Running
    x86_64-softmmu/qemu-system-x86_64 -machine pc,kernel_irqchip=on -enable-kvm
leads to crash:
    qemu-system-x86_64: qemu/util/qemu-option.c:387: qemu_opt_get_bool_helper:
    Assertion `opt->desc && opt->desc->type == QEMU_OPT_BOOL' failed.  Aborted
    (core dumped)

This happens because the commit e79d5a6 ("machine: remove qemu_machine_opts
global list") removed the global option descriptions and moved them to
MachineState's QOM properties.

Fix this by querying machine properties through designated wrappers.

Signed-off-by: Marcel Apfelbaum <marcel@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
---
 hw/ppc/e500.c  | 15 +++++----------
 hw/ppc/spapr.c | 15 ++++++---------
 kvm-all.c      |  6 +++---
 3 files changed, 14 insertions(+), 22 deletions(-)

diff --git a/hw/ppc/e500.c b/hw/ppc/e500.c
index d51fb60..c10e1b5 100644
--- a/hw/ppc/e500.c
+++ b/hw/ppc/e500.c
@@ -734,8 +734,8 @@ static DeviceState *ppce500_init_mpic_kvm(PPCE500Params *params,
     return dev;
 }
 
-static qemu_irq *ppce500_init_mpic(PPCE500Params *params, MemoryRegion *ccsr,
-                                   qemu_irq **irqs)
+static qemu_irq *ppce500_init_mpic(MachineState *machine, PPCE500Params *params,
+                                   MemoryRegion *ccsr, qemu_irq **irqs)
 {
     qemu_irq *mpic;
     DeviceState *dev = NULL;
@@ -745,17 +745,12 @@ static qemu_irq *ppce500_init_mpic(PPCE500Params *params, MemoryRegion *ccsr,
     mpic = g_new0(qemu_irq, 256);
 
     if (kvm_enabled()) {
-        QemuOpts *machine_opts = qemu_get_machine_opts();
-        bool irqchip_allowed = qemu_opt_get_bool(machine_opts,
-                                                "kernel_irqchip", true);
-        bool irqchip_required = qemu_opt_get_bool(machine_opts,
-                                                  "kernel_irqchip", false);
         Error *err = NULL;
 
-        if (irqchip_allowed) {
+        if (machine_kernel_irqchip_allowed(machine)) {
             dev = ppce500_init_mpic_kvm(params, irqs, &err);
         }
-        if (irqchip_required && !dev) {
+        if (machine_kernel_irqchip_required(machine) && !dev) {
             error_report("kernel_irqchip requested but unavailable: %s",
                          error_get_pretty(err));
             exit(1);
@@ -879,7 +874,7 @@ void ppce500_init(MachineState *machine, PPCE500Params *params)
     memory_region_add_subregion(address_space_mem, params->ccsrbar_base,
                                 ccsr_addr_space);
 
-    mpic = ppce500_init_mpic(params, ccsr_addr_space, irqs);
+    mpic = ppce500_init_mpic(machine, params, ccsr_addr_space, irqs);
 
     /* Serial */
     if (serial_hds[0]) {
diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c
index 4aa979f..0487f52 100644
--- a/hw/ppc/spapr.c
+++ b/hw/ppc/spapr.c
@@ -127,22 +127,18 @@ static XICSState *try_create_xics(const char *type, int nr_servers,
     return XICS_COMMON(dev);
 }
 
-static XICSState *xics_system_init(int nr_servers, int nr_irqs)
+static XICSState *xics_system_init(MachineState *machine,
+                                   int nr_servers, int nr_irqs)
 {
     XICSState *icp = NULL;
 
     if (kvm_enabled()) {
-        QemuOpts *machine_opts = qemu_get_machine_opts();
-        bool irqchip_allowed = qemu_opt_get_bool(machine_opts,
-                                                "kernel_irqchip", true);
-        bool irqchip_required = qemu_opt_get_bool(machine_opts,
-                                                  "kernel_irqchip", false);
         Error *err = NULL;
 
-        if (irqchip_allowed) {
+        if (machine_kernel_irqchip_allowed(machine)) {
             icp = try_create_xics(TYPE_KVM_XICS, nr_servers, nr_irqs, &err);
         }
-        if (irqchip_required && !icp) {
+        if (machine_kernel_irqchip_required(machine) && !icp) {
             error_report("kernel_irqchip requested but unavailable: %s",
                          error_get_pretty(err));
         }
@@ -1455,7 +1451,8 @@ static void ppc_spapr_init(MachineState *machine)
     }
 
     /* Set up Interrupt Controller before we create the VCPUs */
-    spapr->icp = xics_system_init(smp_cpus * kvmppc_smt_threads() / smp_threads,
+    spapr->icp = xics_system_init(machine,
+                                  smp_cpus * kvmppc_smt_threads() / smp_threads,
                                   XICS_IRQS);
 
     /* init CPUs */
diff --git a/kvm-all.c b/kvm-all.c
index 07ef62c..729f334 100644
--- a/kvm-all.c
+++ b/kvm-all.c
@@ -1360,11 +1360,11 @@ int kvm_irqchip_remove_irqfd_notifier(KVMState *s, EventNotifier *n, int virq)
            false);
 }
 
-static int kvm_irqchip_create(KVMState *s)
+static int kvm_irqchip_create(MachineState *machine, KVMState *s)
 {
     int ret;
 
-    if (!qemu_opt_get_bool(qemu_get_machine_opts(), "kernel_irqchip", true) ||
+    if (!machine_kernel_irqchip_allowed(machine) ||
         (!kvm_check_extension(s, KVM_CAP_IRQCHIP) &&
          (kvm_vm_enable_cap(s, KVM_CAP_S390_IRQCHIP, 0) < 0))) {
         return 0;
@@ -1603,7 +1603,7 @@ static int kvm_init(MachineState *ms)
         goto err;
     }
 
-    ret = kvm_irqchip_create(s);
+    ret = kvm_irqchip_create(ms, s);
     if (ret < 0) {
         goto err;
     }
-- 
MST

^ permalink raw reply related	[flat|nested] 25+ messages in thread

* [Qemu-devel] [PULL 09/25] kvm: add machine state to kvm_arch_init
       [not found] <1426096767-30494-1-git-send-email-mst@redhat.com>
                   ` (7 preceding siblings ...)
  2015-03-11 19:50 ` [Qemu-devel] [PULL 08/25] machine: query kernel-irqchip property Michael S. Tsirkin
@ 2015-03-11 19:51 ` Michael S. Tsirkin
  2015-03-11 19:51 ` [Qemu-devel] [PULL 10/25] machine: query kvm-shadow-mem machine property Michael S. Tsirkin
                   ` (15 subsequent siblings)
  24 siblings, 0 replies; 25+ messages in thread
From: Michael S. Tsirkin @ 2015-03-11 19:51 UTC (permalink / raw)
  To: qemu-devel
  Cc: Peter Maydell, James Hogan, kvm, Marcelo Tosatti, Cornelia Huck,
	Alexander Graf, Christian Borntraeger, qemu-ppc, Marcel Apfelbaum,
	Paolo Bonzini, Leon Alrae, Aurelien Jarno, Richard Henderson

From: Marcel Apfelbaum <marcel@redhat.com>

Needed to query machine's properties.

Signed-off-by: Marcel Apfelbaum <marcel@redhat.com>
Acked-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
---
 include/sysemu/kvm.h | 2 +-
 kvm-all.c            | 2 +-
 target-arm/kvm.c     | 2 +-
 target-i386/kvm.c    | 2 +-
 target-mips/kvm.c    | 2 +-
 target-ppc/kvm.c     | 2 +-
 target-s390x/kvm.c   | 2 +-
 7 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/include/sysemu/kvm.h b/include/sysemu/kvm.h
index 30cb84d..3792463 100644
--- a/include/sysemu/kvm.h
+++ b/include/sysemu/kvm.h
@@ -259,7 +259,7 @@ int kvm_arch_get_registers(CPUState *cpu);
 
 int kvm_arch_put_registers(CPUState *cpu, int level);
 
-int kvm_arch_init(KVMState *s);
+int kvm_arch_init(MachineState *ms, KVMState *s);
 
 int kvm_arch_init_vcpu(CPUState *cpu);
 
diff --git a/kvm-all.c b/kvm-all.c
index 729f334..cbedc25 100644
--- a/kvm-all.c
+++ b/kvm-all.c
@@ -1598,7 +1598,7 @@ static int kvm_init(MachineState *ms)
     kvm_resamplefds_allowed =
         (kvm_check_extension(s, KVM_CAP_IRQFD_RESAMPLE) > 0);
 
-    ret = kvm_arch_init(s);
+    ret = kvm_arch_init(ms, s);
     if (ret < 0) {
         goto err;
     }
diff --git a/target-arm/kvm.c b/target-arm/kvm.c
index 23cefe9..72c1fa1 100644
--- a/target-arm/kvm.c
+++ b/target-arm/kvm.c
@@ -150,7 +150,7 @@ static const TypeInfo host_arm_cpu_type_info = {
     .class_size = sizeof(ARMHostCPUClass),
 };
 
-int kvm_arch_init(KVMState *s)
+int kvm_arch_init(MachineState *ms, KVMState *s)
 {
     /* For ARM interrupt delivery is always asynchronous,
      * whether we are using an in-kernel VGIC or not.
diff --git a/target-i386/kvm.c b/target-i386/kvm.c
index 40d6a14..ce554e4 100644
--- a/target-i386/kvm.c
+++ b/target-i386/kvm.c
@@ -840,7 +840,7 @@ static int kvm_get_supported_msrs(KVMState *s)
     return ret;
 }
 
-int kvm_arch_init(KVMState *s)
+int kvm_arch_init(MachineState *ms, KVMState *s)
 {
     uint64_t identity_base = 0xfffbc000;
     uint64_t shadow_mem;
diff --git a/target-mips/kvm.c b/target-mips/kvm.c
index b68191c..4d1f7ea 100644
--- a/target-mips/kvm.c
+++ b/target-mips/kvm.c
@@ -40,7 +40,7 @@ unsigned long kvm_arch_vcpu_id(CPUState *cs)
     return cs->cpu_index;
 }
 
-int kvm_arch_init(KVMState *s)
+int kvm_arch_init(MachineState *ms, KVMState *s)
 {
     /* MIPS has 128 signals */
     kvm_set_sigmask_len(s, 16);
diff --git a/target-ppc/kvm.c b/target-ppc/kvm.c
index 1edf2b5..12328a4 100644
--- a/target-ppc/kvm.c
+++ b/target-ppc/kvm.c
@@ -95,7 +95,7 @@ static void kvm_kick_cpu(void *opaque)
 
 static int kvm_ppc_register_host_cpu_type(void);
 
-int kvm_arch_init(KVMState *s)
+int kvm_arch_init(MachineState *ms, KVMState *s)
 {
     cap_interrupt_unset = kvm_check_extension(s, KVM_CAP_PPC_UNSET_IRQ);
     cap_interrupt_level = kvm_check_extension(s, KVM_CAP_PPC_IRQ_LEVEL);
diff --git a/target-s390x/kvm.c b/target-s390x/kvm.c
index 508cc0a..b1369d5 100644
--- a/target-s390x/kvm.c
+++ b/target-s390x/kvm.c
@@ -173,7 +173,7 @@ static void kvm_s390_enable_cmma(KVMState *s)
     trace_kvm_enable_cmma(rc);
 }
 
-int kvm_arch_init(KVMState *s)
+int kvm_arch_init(MachineState *ms, KVMState *s)
 {
     cap_sync_regs = kvm_check_extension(s, KVM_CAP_SYNC_REGS);
     cap_async_pf = kvm_check_extension(s, KVM_CAP_ASYNC_PF);
-- 
MST

^ permalink raw reply related	[flat|nested] 25+ messages in thread

* [Qemu-devel] [PULL 10/25] machine: query kvm-shadow-mem machine property
       [not found] <1426096767-30494-1-git-send-email-mst@redhat.com>
                   ` (8 preceding siblings ...)
  2015-03-11 19:51 ` [Qemu-devel] [PULL 09/25] kvm: add machine state to kvm_arch_init Michael S. Tsirkin
@ 2015-03-11 19:51 ` Michael S. Tsirkin
  2015-03-11 19:51 ` [Qemu-devel] [PULL 11/25] machine: query phandle-start " Michael S. Tsirkin
                   ` (14 subsequent siblings)
  24 siblings, 0 replies; 25+ messages in thread
From: Michael S. Tsirkin @ 2015-03-11 19:51 UTC (permalink / raw)
  To: qemu-devel
  Cc: Peter Maydell, kvm, Marcelo Tosatti, Marcel Apfelbaum,
	Paolo Bonzini, Richard Henderson

From: Marcel Apfelbaum <marcel@redhat.com>

Commit e79d5a6 ("machine: remove qemu_machine_opts global list") removed
the global option descriptions and moved them to MachineState's QOM
properties.

Query kvm-shadow-mem by accessing machine properties through designated
wrappers.

Signed-off-by: Marcel Apfelbaum <marcel@redhat.com>
Acked-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
---
 include/hw/boards.h | 1 +
 hw/core/machine.c   | 6 ++++++
 target-i386/kvm.c   | 3 +--
 3 files changed, 8 insertions(+), 2 deletions(-)

diff --git a/include/hw/boards.h b/include/hw/boards.h
index 69ab606..4be3cd1 100644
--- a/include/hw/boards.h
+++ b/include/hw/boards.h
@@ -69,6 +69,7 @@ bool machine_usb(MachineState *machine);
 bool machine_iommu(MachineState *machine);
 bool machine_kernel_irqchip_allowed(MachineState *machine);
 bool machine_kernel_irqchip_required(MachineState *machine);
+int machine_kvm_shadow_mem(MachineState *machine);
 
 /**
  * MachineClass:
diff --git a/hw/core/machine.c b/hw/core/machine.c
index e04e5ab..0ad5b12 100644
--- a/hw/core/machine.c
+++ b/hw/core/machine.c
@@ -284,6 +284,7 @@ static void machine_initfn(Object *obj)
     MachineState *ms = MACHINE(obj);
 
     ms->kernel_irqchip_allowed = true;
+    ms->kvm_shadow_mem = -1;
 
     object_property_add_str(obj, "accel",
                             machine_get_accel, machine_set_accel, NULL);
@@ -414,6 +415,11 @@ bool machine_kernel_irqchip_required(MachineState *machine)
     return machine->kernel_irqchip_required;
 }
 
+int machine_kvm_shadow_mem(MachineState *machine)
+{
+    return machine->kvm_shadow_mem;
+}
+
 static const TypeInfo machine_info = {
     .name = TYPE_MACHINE,
     .parent = TYPE_OBJECT,
diff --git a/target-i386/kvm.c b/target-i386/kvm.c
index ce554e4..acb6831 100644
--- a/target-i386/kvm.c
+++ b/target-i386/kvm.c
@@ -890,8 +890,7 @@ int kvm_arch_init(MachineState *ms, KVMState *s)
     }
     qemu_register_reset(kvm_unpoison_all, NULL);
 
-    shadow_mem = qemu_opt_get_size(qemu_get_machine_opts(),
-                                   "kvm_shadow_mem", -1);
+    shadow_mem = machine_kvm_shadow_mem(ms);
     if (shadow_mem != -1) {
         shadow_mem /= 4096;
         ret = kvm_vm_ioctl(s, KVM_SET_NR_MMU_PAGES, shadow_mem);
-- 
MST

^ permalink raw reply related	[flat|nested] 25+ messages in thread

* [Qemu-devel] [PULL 11/25] machine: query phandle-start machine property
       [not found] <1426096767-30494-1-git-send-email-mst@redhat.com>
                   ` (9 preceding siblings ...)
  2015-03-11 19:51 ` [Qemu-devel] [PULL 10/25] machine: query kvm-shadow-mem machine property Michael S. Tsirkin
@ 2015-03-11 19:51 ` Michael S. Tsirkin
  2015-03-11 19:51 ` [Qemu-devel] [PULL 12/25] hw/boards: make it safe to include for linux-user Michael S. Tsirkin
                   ` (13 subsequent siblings)
  24 siblings, 0 replies; 25+ messages in thread
From: Michael S. Tsirkin @ 2015-03-11 19:51 UTC (permalink / raw)
  To: qemu-devel
  Cc: Marcel Apfelbaum, Peter Maydell, Peter Crosthwaite,
	Alexander Graf, Paolo Bonzini

From: Marcel Apfelbaum <marcel@redhat.com>

Commit e79d5a6 ("machine: remove qemu_machine_opts global list") removed
the global option descriptions and moved them to MachineState's QOM
properties.

Query phandle-start by accessing machine properties through designated
wrappers.

Signed-off-by: Marcel Apfelbaum <marcel@redhat.com>
Acked-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
---
 include/hw/boards.h | 1 +
 device_tree.c       | 5 ++---
 hw/core/machine.c   | 5 +++++
 3 files changed, 8 insertions(+), 3 deletions(-)

diff --git a/include/hw/boards.h b/include/hw/boards.h
index 4be3cd1..1f21bdf 100644
--- a/include/hw/boards.h
+++ b/include/hw/boards.h
@@ -70,6 +70,7 @@ bool machine_iommu(MachineState *machine);
 bool machine_kernel_irqchip_allowed(MachineState *machine);
 bool machine_kernel_irqchip_required(MachineState *machine);
 int machine_kvm_shadow_mem(MachineState *machine);
+int machine_phandle_start(MachineState *machine);
 
 /**
  * MachineClass:
diff --git a/device_tree.c b/device_tree.c
index 4cb1cd5..3d119ef 100644
--- a/device_tree.c
+++ b/device_tree.c
@@ -24,7 +24,7 @@
 #include "sysemu/device_tree.h"
 #include "sysemu/sysemu.h"
 #include "hw/loader.h"
-#include "qemu/option.h"
+#include "hw/boards.h"
 #include "qemu/config-file.h"
 
 #include <libfdt.h>
@@ -245,8 +245,7 @@ uint32_t qemu_fdt_alloc_phandle(void *fdt)
      * which phandle id to start allocting phandles.
      */
     if (!phandle) {
-        phandle = qemu_opt_get_number(qemu_get_machine_opts(),
-                                      "phandle_start", 0);
+        phandle = machine_phandle_start(current_machine);
     }
 
     if (!phandle) {
diff --git a/hw/core/machine.c b/hw/core/machine.c
index 0ad5b12..5ad2409 100644
--- a/hw/core/machine.c
+++ b/hw/core/machine.c
@@ -420,6 +420,11 @@ int machine_kvm_shadow_mem(MachineState *machine)
     return machine->kvm_shadow_mem;
 }
 
+int machine_phandle_start(MachineState *machine)
+{
+    return machine->phandle_start;
+}
+
 static const TypeInfo machine_info = {
     .name = TYPE_MACHINE,
     .parent = TYPE_OBJECT,
-- 
MST

^ permalink raw reply related	[flat|nested] 25+ messages in thread

* [Qemu-devel] [PULL 12/25] hw/boards: make it safe to include for linux-user
       [not found] <1426096767-30494-1-git-send-email-mst@redhat.com>
                   ` (10 preceding siblings ...)
  2015-03-11 19:51 ` [Qemu-devel] [PULL 11/25] machine: query phandle-start " Michael S. Tsirkin
@ 2015-03-11 19:51 ` Michael S. Tsirkin
  2015-03-11 19:51 ` [Qemu-devel] [PULL 13/25] machine: query dump-guest-core machine property Michael S. Tsirkin
                   ` (12 subsequent siblings)
  24 siblings, 0 replies; 25+ messages in thread
From: Michael S. Tsirkin @ 2015-03-11 19:51 UTC (permalink / raw)
  To: qemu-devel
  Cc: Marcel Apfelbaum, Peter Maydell,
	=?UTF-8?q?Andreas=20F=C3=A4rber?=, Eduardo Habkost, Paolo Bonzini

Make it safe to include hw/boards.h in exec.c
for linux-user configurations.
We don't need any of its contents though.

Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
---
 include/hw/boards.h | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/include/hw/boards.h b/include/hw/boards.h
index 1f21bdf..0bf00f7 100644
--- a/include/hw/boards.h
+++ b/include/hw/boards.h
@@ -3,6 +3,8 @@
 #ifndef HW_BOARDS_H
 #define HW_BOARDS_H
 
+#if !defined(CONFIG_USER_ONLY)
+
 #include "qemu/typedefs.h"
 #include "sysemu/blockdev.h"
 #include "sysemu/accel.h"
@@ -154,3 +156,5 @@ struct MachineState {
 };
 
 #endif
+
+#endif
-- 
MST

^ permalink raw reply related	[flat|nested] 25+ messages in thread

* [Qemu-devel] [PULL 13/25] machine: query dump-guest-core machine property
       [not found] <1426096767-30494-1-git-send-email-mst@redhat.com>
                   ` (11 preceding siblings ...)
  2015-03-11 19:51 ` [Qemu-devel] [PULL 12/25] hw/boards: make it safe to include for linux-user Michael S. Tsirkin
@ 2015-03-11 19:51 ` Michael S. Tsirkin
  2015-03-11 19:51 ` [Qemu-devel] [PULL 14/25] machine: query mem-merge " Michael S. Tsirkin
                   ` (11 subsequent siblings)
  24 siblings, 0 replies; 25+ messages in thread
From: Michael S. Tsirkin @ 2015-03-11 19:51 UTC (permalink / raw)
  To: qemu-devel; +Cc: Marcel Apfelbaum, Peter Maydell, Paolo Bonzini

From: Marcel Apfelbaum <marcel@redhat.com>

Running
    qemu-bin ... -machine pc,dump-guest-core=on
leads to crash:
    x86_64-softmmu/qemu-system-x86_64 -machine pc,dump-guest-core=on
    qemu-system-x86_64: qemu/util/qemu-option.c:387: qemu_opt_get_bool_helper:
    Assertion `opt->desc && opt->desc->type == QEMU_OPT_BOOL' failed.  Aborted
    (core dumped)

This happens because the commit e79d5a6 ("machine: remove qemu_machine_opts
global list") removed the global option descriptions and moved them to
MachineState's QOM properties.

Fix this by querying machine properties through designated wrappers.

Signed-off-by: Marcel Apfelbaum <marcel@redhat.com>
Acked-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
---
 include/hw/boards.h | 1 +
 exec.c              | 4 ++--
 hw/core/machine.c   | 6 ++++++
 3 files changed, 9 insertions(+), 2 deletions(-)

diff --git a/include/hw/boards.h b/include/hw/boards.h
index 0bf00f7..bbac39d 100644
--- a/include/hw/boards.h
+++ b/include/hw/boards.h
@@ -73,6 +73,7 @@ bool machine_kernel_irqchip_allowed(MachineState *machine);
 bool machine_kernel_irqchip_required(MachineState *machine);
 int machine_kvm_shadow_mem(MachineState *machine);
 int machine_phandle_start(MachineState *machine);
+bool machine_dump_guest_core(MachineState *machine);
 
 /**
  * MachineClass:
diff --git a/exec.c b/exec.c
index b44a33c..f55270b 100644
--- a/exec.c
+++ b/exec.c
@@ -26,6 +26,7 @@
 #include "cpu.h"
 #include "tcg.h"
 #include "hw/hw.h"
+#include "hw/boards.h"
 #include "hw/qdev.h"
 #include "qemu/osdep.h"
 #include "sysemu/kvm.h"
@@ -1250,8 +1251,7 @@ static void qemu_ram_setup_dump(void *addr, ram_addr_t size)
     int ret;
 
     /* Use MADV_DONTDUMP, if user doesn't want the guest memory in the core */
-    if (!qemu_opt_get_bool(qemu_get_machine_opts(),
-                           "dump-guest-core", true)) {
+    if (!machine_dump_guest_core(current_machine)) {
         ret = qemu_madvise(addr, size, QEMU_MADV_DONTDUMP);
         if (ret) {
             perror("qemu_madvise");
diff --git a/hw/core/machine.c b/hw/core/machine.c
index 5ad2409..8033683 100644
--- a/hw/core/machine.c
+++ b/hw/core/machine.c
@@ -285,6 +285,7 @@ static void machine_initfn(Object *obj)
 
     ms->kernel_irqchip_allowed = true;
     ms->kvm_shadow_mem = -1;
+    ms->dump_guest_core = true;
 
     object_property_add_str(obj, "accel",
                             machine_get_accel, machine_set_accel, NULL);
@@ -425,6 +426,11 @@ int machine_phandle_start(MachineState *machine)
     return machine->phandle_start;
 }
 
+bool machine_dump_guest_core(MachineState *machine)
+{
+    return machine->dump_guest_core;
+}
+
 static const TypeInfo machine_info = {
     .name = TYPE_MACHINE,
     .parent = TYPE_OBJECT,
-- 
MST

^ permalink raw reply related	[flat|nested] 25+ messages in thread

* [Qemu-devel] [PULL 14/25] machine: query mem-merge machine property
       [not found] <1426096767-30494-1-git-send-email-mst@redhat.com>
                   ` (12 preceding siblings ...)
  2015-03-11 19:51 ` [Qemu-devel] [PULL 13/25] machine: query dump-guest-core machine property Michael S. Tsirkin
@ 2015-03-11 19:51 ` Michael S. Tsirkin
  2015-03-11 19:51 ` [Qemu-devel] [PULL 15/25] pci: Convert pci_nic_init() to Error to avoid qdev_init() Michael S. Tsirkin
                   ` (10 subsequent siblings)
  24 siblings, 0 replies; 25+ messages in thread
From: Michael S. Tsirkin @ 2015-03-11 19:51 UTC (permalink / raw)
  To: qemu-devel; +Cc: Marcel Apfelbaum, Peter Maydell, Paolo Bonzini

From: Marcel Apfelbaum <marcel@redhat.com>

Running
    qemu-bin ... -machine pc,mem-merge=on
leads to crash:
    x86_64-softmmu/qemu-system-x86_64 -machine pc,dump-guest-core=on
    qemu-system-x86_64: qemu/util/qemu-option.c:387: qemu_opt_get_bool_helper:
    Assertion `opt->desc && opt->desc->type == QEMU_OPT_BOOL' failed.  Aborted
    (core dumped)

This happens because the commit e79d5a6 ("machine: remove qemu_machine_opts
global list") removed the global option descriptions and moved them to
MachineState's QOM properties.

Fix this by querying machine properties through designated wrappers.

Signed-off-by: Marcel Apfelbaum <marcel@redhat.com>
Acked-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
---
 include/hw/boards.h | 1 +
 exec.c              | 2 +-
 hw/core/machine.c   | 6 ++++++
 3 files changed, 8 insertions(+), 1 deletion(-)

diff --git a/include/hw/boards.h b/include/hw/boards.h
index bbac39d..cd6deb0 100644
--- a/include/hw/boards.h
+++ b/include/hw/boards.h
@@ -74,6 +74,7 @@ bool machine_kernel_irqchip_required(MachineState *machine);
 int machine_kvm_shadow_mem(MachineState *machine);
 int machine_phandle_start(MachineState *machine);
 bool machine_dump_guest_core(MachineState *machine);
+bool machine_mem_merge(MachineState *machine);
 
 /**
  * MachineClass:
diff --git a/exec.c b/exec.c
index f55270b..fe64009 100644
--- a/exec.c
+++ b/exec.c
@@ -1326,7 +1326,7 @@ void qemu_ram_unset_idstr(ram_addr_t addr)
 
 static int memory_try_enable_merging(void *addr, size_t len)
 {
-    if (!qemu_opt_get_bool(qemu_get_machine_opts(), "mem-merge", true)) {
+    if (!machine_mem_merge(current_machine)) {
         /* disabled by the user */
         return 0;
     }
diff --git a/hw/core/machine.c b/hw/core/machine.c
index 8033683..e3a3e2a 100644
--- a/hw/core/machine.c
+++ b/hw/core/machine.c
@@ -286,6 +286,7 @@ static void machine_initfn(Object *obj)
     ms->kernel_irqchip_allowed = true;
     ms->kvm_shadow_mem = -1;
     ms->dump_guest_core = true;
+    ms->mem_merge = true;
 
     object_property_add_str(obj, "accel",
                             machine_get_accel, machine_set_accel, NULL);
@@ -431,6 +432,11 @@ bool machine_dump_guest_core(MachineState *machine)
     return machine->dump_guest_core;
 }
 
+bool machine_mem_merge(MachineState *machine)
+{
+    return machine->mem_merge;
+}
+
 static const TypeInfo machine_info = {
     .name = TYPE_MACHINE,
     .parent = TYPE_OBJECT,
-- 
MST

^ permalink raw reply related	[flat|nested] 25+ messages in thread

* [Qemu-devel] [PULL 15/25] pci: Convert pci_nic_init() to Error to avoid qdev_init()
       [not found] <1426096767-30494-1-git-send-email-mst@redhat.com>
                   ` (13 preceding siblings ...)
  2015-03-11 19:51 ` [Qemu-devel] [PULL 14/25] machine: query mem-merge " Michael S. Tsirkin
@ 2015-03-11 19:51 ` Michael S. Tsirkin
  2015-03-11 19:51 ` [Qemu-devel] [PULL 16/25] virtio-pci: Convert to realize() Michael S. Tsirkin
                   ` (9 subsequent siblings)
  24 siblings, 0 replies; 25+ messages in thread
From: Michael S. Tsirkin @ 2015-03-11 19:51 UTC (permalink / raw)
  To: qemu-devel; +Cc: Peter Maydell, Markus Armbruster

From: Markus Armbruster <armbru@redhat.com>

qdev_init() is deprecated, and will be removed when its callers have
been weaned off it.

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Acked-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
---
 hw/pci/pci.c | 18 ++++++++++++++----
 1 file changed, 14 insertions(+), 4 deletions(-)

diff --git a/hw/pci/pci.c b/hw/pci/pci.c
index cc5d946..6941a82 100644
--- a/hw/pci/pci.c
+++ b/hw/pci/pci.c
@@ -1613,9 +1613,11 @@ static const char * const pci_nic_names[] = {
 /* Initialize a PCI NIC.  */
 static PCIDevice *pci_nic_init(NICInfo *nd, PCIBus *rootbus,
                                const char *default_model,
-                               const char *default_devaddr)
+                               const char *default_devaddr,
+                               Error **errp)
 {
     const char *devaddr = nd->devaddr ? nd->devaddr : default_devaddr;
+    Error *err = NULL;
     PCIBus *bus;
     int devfn;
     PCIDevice *pci_dev;
@@ -1636,8 +1638,13 @@ static PCIDevice *pci_nic_init(NICInfo *nd, PCIBus *rootbus,
     pci_dev = pci_create(bus, devfn, pci_nic_names[i]);
     dev = &pci_dev->qdev;
     qdev_set_nic_properties(dev, nd);
-    if (qdev_init(dev) < 0)
+
+    object_property_set_bool(OBJECT(dev), true, "realized", &err);
+    if (err) {
+        error_propagate(errp, err);
+        object_unparent(OBJECT(dev));
         return NULL;
+    }
     return pci_dev;
 }
 
@@ -1645,14 +1652,17 @@ PCIDevice *pci_nic_init_nofail(NICInfo *nd, PCIBus *rootbus,
                                const char *default_model,
                                const char *default_devaddr)
 {
+    Error *err = NULL;
     PCIDevice *res;
 
     if (qemu_show_nic_models(nd->model, pci_nic_models))
         exit(0);
 
-    res = pci_nic_init(nd, rootbus, default_model, default_devaddr);
-    if (!res)
+    res = pci_nic_init(nd, rootbus, default_model, default_devaddr, &err);
+    if (!res) {
+        error_report_err(err);
         exit(1);
+    }
     return res;
 }
 
-- 
MST

^ permalink raw reply related	[flat|nested] 25+ messages in thread

* [Qemu-devel] [PULL 16/25] virtio-pci: Convert to realize()
       [not found] <1426096767-30494-1-git-send-email-mst@redhat.com>
                   ` (14 preceding siblings ...)
  2015-03-11 19:51 ` [Qemu-devel] [PULL 15/25] pci: Convert pci_nic_init() to Error to avoid qdev_init() Michael S. Tsirkin
@ 2015-03-11 19:51 ` Michael S. Tsirkin
  2015-03-11 19:51 ` [Qemu-devel] [PULL 17/25] tpm: Move memory subregion function into realize function Michael S. Tsirkin
                   ` (8 subsequent siblings)
  24 siblings, 0 replies; 25+ messages in thread
From: Michael S. Tsirkin @ 2015-03-11 19:51 UTC (permalink / raw)
  To: qemu-devel; +Cc: Peter Maydell, Markus Armbruster

From: Markus Armbruster <armbru@redhat.com>

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Acked-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
---
 hw/virtio/virtio-pci.h |  2 +-
 hw/virtio/virtio-pci.c | 88 ++++++++++++++++++++------------------------------
 2 files changed, 36 insertions(+), 54 deletions(-)

diff --git a/hw/virtio/virtio-pci.h b/hw/virtio/virtio-pci.h
index 8873b6d..3bac016 100644
--- a/hw/virtio/virtio-pci.h
+++ b/hw/virtio/virtio-pci.h
@@ -82,7 +82,7 @@ typedef struct {
 
 typedef struct VirtioPCIClass {
     PCIDeviceClass parent_class;
-    int (*init)(VirtIOPCIProxy *vpci_dev);
+    void (*realize)(VirtIOPCIProxy *vpci_dev, Error **errp);
 } VirtioPCIClass;
 
 struct VirtIOPCIProxy {
diff --git a/hw/virtio/virtio-pci.c b/hw/virtio/virtio-pci.c
index e7baf7b..c7c3f72 100644
--- a/hw/virtio/virtio-pci.c
+++ b/hw/virtio/virtio-pci.c
@@ -856,16 +856,13 @@ static void virtio_pci_vmstate_change(DeviceState *d, bool running)
 }
 
 #ifdef CONFIG_VIRTFS
-static int virtio_9p_init_pci(VirtIOPCIProxy *vpci_dev)
+static void virtio_9p_pci_realize(VirtIOPCIProxy *vpci_dev, Error **errp)
 {
     V9fsPCIState *dev = VIRTIO_9P_PCI(vpci_dev);
     DeviceState *vdev = DEVICE(&dev->vdev);
 
     qdev_set_parent_bus(vdev, BUS(&vpci_dev->bus));
-    if (qdev_init(vdev) < 0) {
-        return -1;
-    }
-    return 0;
+    object_property_set_bool(OBJECT(vdev), true, "realized", errp);
 }
 
 static Property virtio_9p_pci_properties[] = {
@@ -881,7 +878,7 @@ static void virtio_9p_pci_class_init(ObjectClass *klass, void *data)
     PCIDeviceClass *pcidev_k = PCI_DEVICE_CLASS(klass);
     VirtioPCIClass *k = VIRTIO_PCI_CLASS(klass);
 
-    k->init = virtio_9p_init_pci;
+    k->realize = virtio_9p_pci_realize;
     pcidev_k->vendor_id = PCI_VENDOR_ID_REDHAT_QUMRANET;
     pcidev_k->device_id = PCI_DEVICE_ID_VIRTIO_9P;
     pcidev_k->revision = VIRTIO_PCI_ABI_VERSION;
@@ -965,15 +962,15 @@ static void virtio_pci_device_unplugged(DeviceState *d)
     virtio_pci_stop_ioeventfd(proxy);
 }
 
-static int virtio_pci_init(PCIDevice *pci_dev)
+static void virtio_pci_realize(PCIDevice *pci_dev, Error **errp)
 {
     VirtIOPCIProxy *dev = VIRTIO_PCI(pci_dev);
     VirtioPCIClass *k = VIRTIO_PCI_GET_CLASS(pci_dev);
+
     virtio_pci_bus_new(&dev->bus, sizeof(dev->bus), dev);
-    if (k->init != NULL) {
-        return k->init(dev);
+    if (k->realize) {
+        k->realize(dev, errp);
     }
-    return 0;
 }
 
 static void virtio_pci_exit(PCIDevice *pci_dev)
@@ -1003,7 +1000,7 @@ static void virtio_pci_class_init(ObjectClass *klass, void *data)
     PCIDeviceClass *k = PCI_DEVICE_CLASS(klass);
 
     dc->props = virtio_pci_properties;
-    k->init = virtio_pci_init;
+    k->realize = virtio_pci_realize;
     k->exit = virtio_pci_exit;
     k->vendor_id = PCI_VENDOR_ID_REDHAT_QUMRANET;
     k->revision = VIRTIO_PCI_ABI_VERSION;
@@ -1030,15 +1027,13 @@ static Property virtio_blk_pci_properties[] = {
     DEFINE_PROP_END_OF_LIST(),
 };
 
-static int virtio_blk_pci_init(VirtIOPCIProxy *vpci_dev)
+static void virtio_blk_pci_realize(VirtIOPCIProxy *vpci_dev, Error **errp)
 {
     VirtIOBlkPCI *dev = VIRTIO_BLK_PCI(vpci_dev);
     DeviceState *vdev = DEVICE(&dev->vdev);
+
     qdev_set_parent_bus(vdev, BUS(&vpci_dev->bus));
-    if (qdev_init(vdev) < 0) {
-        return -1;
-    }
-    return 0;
+    object_property_set_bool(OBJECT(vdev), true, "realized", errp);
 }
 
 static void virtio_blk_pci_class_init(ObjectClass *klass, void *data)
@@ -1049,7 +1044,7 @@ static void virtio_blk_pci_class_init(ObjectClass *klass, void *data)
 
     set_bit(DEVICE_CATEGORY_STORAGE, dc->categories);
     dc->props = virtio_blk_pci_properties;
-    k->init = virtio_blk_pci_init;
+    k->realize = virtio_blk_pci_realize;
     pcidev_k->vendor_id = PCI_VENDOR_ID_REDHAT_QUMRANET;
     pcidev_k->device_id = PCI_DEVICE_ID_VIRTIO_BLOCK;
     pcidev_k->revision = VIRTIO_PCI_ABI_VERSION;
@@ -1087,7 +1082,7 @@ static Property virtio_scsi_pci_properties[] = {
     DEFINE_PROP_END_OF_LIST(),
 };
 
-static int virtio_scsi_pci_init_pci(VirtIOPCIProxy *vpci_dev)
+static void virtio_scsi_pci_realize(VirtIOPCIProxy *vpci_dev, Error **errp)
 {
     VirtIOSCSIPCI *dev = VIRTIO_SCSI_PCI(vpci_dev);
     DeviceState *vdev = DEVICE(&dev->vdev);
@@ -1110,10 +1105,7 @@ static int virtio_scsi_pci_init_pci(VirtIOPCIProxy *vpci_dev)
     }
 
     qdev_set_parent_bus(vdev, BUS(&vpci_dev->bus));
-    if (qdev_init(vdev) < 0) {
-        return -1;
-    }
-    return 0;
+    object_property_set_bool(OBJECT(vdev), true, "realized", errp);
 }
 
 static void virtio_scsi_pci_class_init(ObjectClass *klass, void *data)
@@ -1121,7 +1113,8 @@ static void virtio_scsi_pci_class_init(ObjectClass *klass, void *data)
     DeviceClass *dc = DEVICE_CLASS(klass);
     VirtioPCIClass *k = VIRTIO_PCI_CLASS(klass);
     PCIDeviceClass *pcidev_k = PCI_DEVICE_CLASS(klass);
-    k->init = virtio_scsi_pci_init_pci;
+
+    k->realize = virtio_scsi_pci_realize;
     set_bit(DEVICE_CATEGORY_STORAGE, dc->categories);
     dc->props = virtio_scsi_pci_properties;
     pcidev_k->vendor_id = PCI_VENDOR_ID_REDHAT_QUMRANET;
@@ -1157,7 +1150,7 @@ static Property vhost_scsi_pci_properties[] = {
     DEFINE_PROP_END_OF_LIST(),
 };
 
-static int vhost_scsi_pci_init_pci(VirtIOPCIProxy *vpci_dev)
+static void vhost_scsi_pci_realize(VirtIOPCIProxy *vpci_dev, Error **errp)
 {
     VHostSCSIPCI *dev = VHOST_SCSI_PCI(vpci_dev);
     DeviceState *vdev = DEVICE(&dev->vdev);
@@ -1168,10 +1161,7 @@ static int vhost_scsi_pci_init_pci(VirtIOPCIProxy *vpci_dev)
     }
 
     qdev_set_parent_bus(vdev, BUS(&vpci_dev->bus));
-    if (qdev_init(vdev) < 0) {
-        return -1;
-    }
-    return 0;
+    object_property_set_bool(OBJECT(vdev), true, "realized", errp);
 }
 
 static void vhost_scsi_pci_class_init(ObjectClass *klass, void *data)
@@ -1179,7 +1169,7 @@ static void vhost_scsi_pci_class_init(ObjectClass *klass, void *data)
     DeviceClass *dc = DEVICE_CLASS(klass);
     VirtioPCIClass *k = VIRTIO_PCI_CLASS(klass);
     PCIDeviceClass *pcidev_k = PCI_DEVICE_CLASS(klass);
-    k->init = vhost_scsi_pci_init_pci;
+    k->realize = vhost_scsi_pci_realize;
     set_bit(DEVICE_CATEGORY_STORAGE, dc->categories);
     dc->props = vhost_scsi_pci_properties;
     pcidev_k->vendor_id = PCI_VENDOR_ID_REDHAT_QUMRANET;
@@ -1240,7 +1230,7 @@ static Property virtio_balloon_pci_properties[] = {
     DEFINE_PROP_END_OF_LIST(),
 };
 
-static int virtio_balloon_pci_init(VirtIOPCIProxy *vpci_dev)
+static void virtio_balloon_pci_realize(VirtIOPCIProxy *vpci_dev, Error **errp)
 {
     VirtIOBalloonPCI *dev = VIRTIO_BALLOON_PCI(vpci_dev);
     DeviceState *vdev = DEVICE(&dev->vdev);
@@ -1251,10 +1241,7 @@ static int virtio_balloon_pci_init(VirtIOPCIProxy *vpci_dev)
     }
 
     qdev_set_parent_bus(vdev, BUS(&vpci_dev->bus));
-    if (qdev_init(vdev) < 0) {
-        return -1;
-    }
-    return 0;
+    object_property_set_bool(OBJECT(vdev), true, "realized", errp);
 }
 
 static void virtio_balloon_pci_class_init(ObjectClass *klass, void *data)
@@ -1262,7 +1249,7 @@ static void virtio_balloon_pci_class_init(ObjectClass *klass, void *data)
     DeviceClass *dc = DEVICE_CLASS(klass);
     VirtioPCIClass *k = VIRTIO_PCI_CLASS(klass);
     PCIDeviceClass *pcidev_k = PCI_DEVICE_CLASS(klass);
-    k->init = virtio_balloon_pci_init;
+    k->realize = virtio_balloon_pci_realize;
     set_bit(DEVICE_CATEGORY_MISC, dc->categories);
     dc->props = virtio_balloon_pci_properties;
     pcidev_k->vendor_id = PCI_VENDOR_ID_REDHAT_QUMRANET;
@@ -1296,7 +1283,7 @@ static const TypeInfo virtio_balloon_pci_info = {
 
 /* virtio-serial-pci */
 
-static int virtio_serial_pci_init(VirtIOPCIProxy *vpci_dev)
+static void virtio_serial_pci_realize(VirtIOPCIProxy *vpci_dev, Error **errp)
 {
     VirtIOSerialPCI *dev = VIRTIO_SERIAL_PCI(vpci_dev);
     DeviceState *vdev = DEVICE(&dev->vdev);
@@ -1326,10 +1313,7 @@ static int virtio_serial_pci_init(VirtIOPCIProxy *vpci_dev)
     }
 
     qdev_set_parent_bus(vdev, BUS(&vpci_dev->bus));
-    if (qdev_init(vdev) < 0) {
-        return -1;
-    }
-    return 0;
+    object_property_set_bool(OBJECT(vdev), true, "realized", errp);
 }
 
 static Property virtio_serial_pci_properties[] = {
@@ -1345,7 +1329,7 @@ static void virtio_serial_pci_class_init(ObjectClass *klass, void *data)
     DeviceClass *dc = DEVICE_CLASS(klass);
     VirtioPCIClass *k = VIRTIO_PCI_CLASS(klass);
     PCIDeviceClass *pcidev_k = PCI_DEVICE_CLASS(klass);
-    k->init = virtio_serial_pci_init;
+    k->realize = virtio_serial_pci_realize;
     set_bit(DEVICE_CATEGORY_INPUT, dc->categories);
     dc->props = virtio_serial_pci_properties;
     pcidev_k->vendor_id = PCI_VENDOR_ID_REDHAT_QUMRANET;
@@ -1380,7 +1364,7 @@ static Property virtio_net_properties[] = {
     DEFINE_PROP_END_OF_LIST(),
 };
 
-static int virtio_net_pci_init(VirtIOPCIProxy *vpci_dev)
+static void virtio_net_pci_realize(VirtIOPCIProxy *vpci_dev, Error **errp)
 {
     DeviceState *qdev = DEVICE(vpci_dev);
     VirtIONetPCI *dev = VIRTIO_NET_PCI(vpci_dev);
@@ -1390,10 +1374,7 @@ static int virtio_net_pci_init(VirtIOPCIProxy *vpci_dev)
     virtio_net_set_netclient_name(&dev->vdev, qdev->id,
                                   object_get_typename(OBJECT(qdev)));
     qdev_set_parent_bus(vdev, BUS(&vpci_dev->bus));
-    if (qdev_init(vdev) < 0) {
-        return -1;
-    }
-    return 0;
+    object_property_set_bool(OBJECT(vdev), true, "realized", errp);
 }
 
 static void virtio_net_pci_class_init(ObjectClass *klass, void *data)
@@ -1409,7 +1390,7 @@ static void virtio_net_pci_class_init(ObjectClass *klass, void *data)
     k->class_id = PCI_CLASS_NETWORK_ETHERNET;
     set_bit(DEVICE_CATEGORY_NETWORK, dc->categories);
     dc->props = virtio_net_properties;
-    vpciklass->init = virtio_net_pci_init;
+    vpciklass->realize = virtio_net_pci_realize;
 }
 
 static void virtio_net_pci_instance_init(Object *obj)
@@ -1436,21 +1417,22 @@ static Property virtio_rng_pci_properties[] = {
     DEFINE_PROP_END_OF_LIST(),
 };
 
-static int virtio_rng_pci_init(VirtIOPCIProxy *vpci_dev)
+static void virtio_rng_pci_realize(VirtIOPCIProxy *vpci_dev, Error **errp)
 {
     VirtIORngPCI *vrng = VIRTIO_RNG_PCI(vpci_dev);
     DeviceState *vdev = DEVICE(&vrng->vdev);
+    Error *err = NULL;
 
     qdev_set_parent_bus(vdev, BUS(&vpci_dev->bus));
-    if (qdev_init(vdev) < 0) {
-        return -1;
+    object_property_set_bool(OBJECT(vdev), true, "realized", &err);
+    if (err) {
+        error_propagate(errp, err);
+        return;
     }
 
     object_property_set_link(OBJECT(vrng),
                              OBJECT(vrng->vdev.conf.rng), "rng",
                              NULL);
-
-    return 0;
 }
 
 static void virtio_rng_pci_class_init(ObjectClass *klass, void *data)
@@ -1459,7 +1441,7 @@ static void virtio_rng_pci_class_init(ObjectClass *klass, void *data)
     VirtioPCIClass *k = VIRTIO_PCI_CLASS(klass);
     PCIDeviceClass *pcidev_k = PCI_DEVICE_CLASS(klass);
 
-    k->init = virtio_rng_pci_init;
+    k->realize = virtio_rng_pci_realize;
     set_bit(DEVICE_CATEGORY_MISC, dc->categories);
     dc->props = virtio_rng_pci_properties;
 
-- 
MST

^ permalink raw reply related	[flat|nested] 25+ messages in thread

* [Qemu-devel] [PULL 17/25] tpm: Move memory subregion function into realize function
       [not found] <1426096767-30494-1-git-send-email-mst@redhat.com>
                   ` (15 preceding siblings ...)
  2015-03-11 19:51 ` [Qemu-devel] [PULL 16/25] virtio-pci: Convert to realize() Michael S. Tsirkin
@ 2015-03-11 19:51 ` Michael S. Tsirkin
  2015-03-11 19:51 ` [Qemu-devel] [PULL 18/25] MAINTAINERS: drop aliguori@amazon.com Michael S. Tsirkin
                   ` (7 subsequent siblings)
  24 siblings, 0 replies; 25+ messages in thread
From: Michael S. Tsirkin @ 2015-03-11 19:51 UTC (permalink / raw)
  To: qemu-devel
  Cc: Peter Maydell, Peter Crosthwaite, Stefan Berger, Stefan Berger,
	Max Reitz, Paolo Bonzini

From: Stefan Berger <stefanb@us.ibm.com>

Move the memory subregion function into the DeviceClass realize function
due to isa_address_space (now) crashing if called in the instance init
function.

Signed-off-by: Stefan Berger <stefanb@linux.vnet.ibm.com>
Acked-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
Acked-by: Paolo Bonzini <pbonzini@redhat.com>
---
 hw/tpm/tpm_tis.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/hw/tpm/tpm_tis.c b/hw/tpm/tpm_tis.c
index d0bb97f..9084ca4 100644
--- a/hw/tpm/tpm_tis.c
+++ b/hw/tpm/tpm_tis.c
@@ -959,18 +959,18 @@ static void tpm_tis_realizefn(DeviceState *dev, Error **errp)
     tis->bh = qemu_bh_new(tpm_tis_receive_bh, s);
 
     isa_init_irq(&s->busdev, &tis->irq, tis->irq_num);
+
+    memory_region_add_subregion(isa_address_space(ISA_DEVICE(dev)),
+                                TPM_TIS_ADDR_BASE, &s->mmio);
 }
 
 static void tpm_tis_initfn(Object *obj)
 {
-    ISADevice *dev = ISA_DEVICE(obj);
     TPMState *s = TPM(obj);
 
     memory_region_init_io(&s->mmio, OBJECT(s), &tpm_tis_memory_ops,
                           s, "tpm-tis-mmio",
                           TPM_TIS_NUM_LOCALITIES << TPM_TIS_LOCALITY_SHIFT);
-    memory_region_add_subregion(isa_address_space(dev), TPM_TIS_ADDR_BASE,
-                                &s->mmio);
 }
 
 static void tpm_tis_class_init(ObjectClass *klass, void *data)
-- 
MST

^ permalink raw reply related	[flat|nested] 25+ messages in thread

* [Qemu-devel] [PULL 18/25] MAINTAINERS: drop aliguori@amazon.com
       [not found] <1426096767-30494-1-git-send-email-mst@redhat.com>
                   ` (16 preceding siblings ...)
  2015-03-11 19:51 ` [Qemu-devel] [PULL 17/25] tpm: Move memory subregion function into realize function Michael S. Tsirkin
@ 2015-03-11 19:51 ` Michael S. Tsirkin
  2015-03-11 19:51 ` [Qemu-devel] [PULL 19/25] acpi: specify format for build_append_namestring Michael S. Tsirkin
                   ` (6 subsequent siblings)
  24 siblings, 0 replies; 25+ messages in thread
From: Michael S. Tsirkin @ 2015-03-11 19:51 UTC (permalink / raw)
  To: qemu-devel
  Cc: Kevin Wolf, Peter Maydell, Anthony Liguori, Stefan Hajnoczi,
	Amit Shah, Paolo Bonzini, =?UTF-8?q?Andreas=20F=C3=A4rber?=

It's sad when a friend leaves, but we have to move on.

Drop Anthony's email from MAINTAINERS so he stops getting
irrelevant email.

Got Anthony's ack off-list.

Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Acked-by: Anthony Liguori <aliguori@amazon.com>
---
 MAINTAINERS | 9 ---------
 1 file changed, 9 deletions(-)

diff --git a/MAINTAINERS b/MAINTAINERS
index 8c06739..50343e9 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -50,14 +50,12 @@ Descriptions of section entries:
 
 General Project Administration
 ------------------------------
-M: Anthony Liguori <aliguori@amazon.com>
 M: Peter Maydell <peter.maydell@linaro.org>
 
 Responsible Disclosure, Reporting Security Issues
 ------------------------------
 W: http://wiki.qemu.org/SecurityProcess
 M: Michael S. Tsirkin <mst@redhat.com>
-M: Anthony Liguori <aliguori@amazon.com>
 L: secalert@redhat.com
 
 Guest CPU cores (TCG):
@@ -565,7 +563,6 @@ F: hw/unicore32/
 X86 Machines
 ------------
 PC
-M: Anthony Liguori <aliguori@amazon.com>
 M: Michael S. Tsirkin <mst@redhat.com>
 S: Supported
 F: include/hw/i386/
@@ -676,7 +673,6 @@ S: Supported
 F: hw/*/*vhost*
 
 virtio
-M: Anthony Liguori <aliguori@amazon.com>
 M: Michael S. Tsirkin <mst@redhat.com>
 S: Supported
 F: hw/*/virtio*
@@ -771,7 +767,6 @@ T: git git://repo.or.cz/qemu/kevin.git block
 T: git git://github.com/stefanha/qemu.git block
 
 Character Devices
-M: Anthony Liguori <aliguori@amazon.com>
 M: Paolo Bonzini <pbonzini@redhat.com>
 S: Maintained
 F: qemu-char.c
@@ -832,7 +827,6 @@ F: audio/spiceaudio.c
 F: hw/display/qxl*
 
 Graphics
-M: Anthony Liguori <aliguori@amazon.com>
 M: Gerd Hoffmann <kraxel@redhat.com>
 S: Odd Fixes
 F: ui/
@@ -844,7 +838,6 @@ S: Odd Fixes
 F: ui/cocoa.m
 
 Main loop
-M: Anthony Liguori <aliguori@amazon.com>
 M: Paolo Bonzini <pbonzini@redhat.com>
 S: Maintained
 F: cpus.c
@@ -861,7 +854,6 @@ F: hmp-commands.hx
 T: git git://repo.or.cz/qemu/qmp-unstable.git queue/qmp
 
 Network device layer
-M: Anthony Liguori <aliguori@amazon.com>
 M: Stefan Hajnoczi <stefanha@redhat.com>
 M: Jason Wang <jasowang@redhat.com>
 S: Maintained
@@ -913,7 +905,6 @@ F: qga/
 T: git git://github.com/mdroth/qemu.git qga
 
 QOM
-M: Anthony Liguori <aliguori@amazon.com>
 M: Andreas Färber <afaerber@suse.de>
 S: Supported
 T: git git://github.com/afaerber/qemu-cpu.git qom-next
-- 
MST

^ permalink raw reply related	[flat|nested] 25+ messages in thread

* [Qemu-devel] [PULL 19/25] acpi: specify format for build_append_namestring
       [not found] <1426096767-30494-1-git-send-email-mst@redhat.com>
                   ` (17 preceding siblings ...)
  2015-03-11 19:51 ` [Qemu-devel] [PULL 18/25] MAINTAINERS: drop aliguori@amazon.com Michael S. Tsirkin
@ 2015-03-11 19:51 ` Michael S. Tsirkin
  2015-03-11 19:51 ` [Qemu-devel] [PULL 20/25] exec: don't include hw/boards for linux-user Michael S. Tsirkin
                   ` (5 subsequent siblings)
  24 siblings, 0 replies; 25+ messages in thread
From: Michael S. Tsirkin @ 2015-03-11 19:51 UTC (permalink / raw)
  To: qemu-devel; +Cc: Peter Maydell, Igor Mammedov

Will catch users if we misused it.

Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Reviewed-by: Igor Mammedov <imammedo@redhat.com>
---
 hw/acpi/aml-build.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/hw/acpi/aml-build.c b/hw/acpi/aml-build.c
index ace180b..6242908 100644
--- a/hw/acpi/aml-build.c
+++ b/hw/acpi/aml-build.c
@@ -141,6 +141,7 @@ build_append_namestringv(GArray *array, const char *format, va_list ap)
     g_strfreev(segs);
 }
 
+GCC_FMT_ATTR(2, 3)
 static void build_append_namestring(GArray *array, const char *format, ...)
 {
     va_list ap;
-- 
MST

^ permalink raw reply related	[flat|nested] 25+ messages in thread

* [Qemu-devel] [PULL 20/25] exec: don't include hw/boards for linux-user
       [not found] <1426096767-30494-1-git-send-email-mst@redhat.com>
                   ` (18 preceding siblings ...)
  2015-03-11 19:51 ` [Qemu-devel] [PULL 19/25] acpi: specify format for build_append_namestring Michael S. Tsirkin
@ 2015-03-11 19:51 ` Michael S. Tsirkin
  2015-03-11 19:51 ` [Qemu-devel] [PULL 21/25] virtio-scsi: drop duplicate CDB/SENSE SIZE Michael S. Tsirkin
                   ` (4 subsequent siblings)
  24 siblings, 0 replies; 25+ messages in thread
From: Michael S. Tsirkin @ 2015-03-11 19:51 UTC (permalink / raw)
  To: qemu-devel
  Cc: Peter Maydell, =?UTF-8?q?Andreas=20F=C3=A4rber?=, Paolo Bonzini

As noted by Andreas, hw/boards.h shouldn't be used outside softmmu code.
Include it conditionally, and drop the (now unnecessary) ifdef guards in
hw/boards.h

Reported-by: Andreas Färber <afaerber@suse.de>
Cc: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Reviewed-by: Andreas Färber <afaerber@suse.de>
---
 include/hw/boards.h | 4 ----
 exec.c              | 2 ++
 2 files changed, 2 insertions(+), 4 deletions(-)

diff --git a/include/hw/boards.h b/include/hw/boards.h
index cd6deb0..f44d6f5 100644
--- a/include/hw/boards.h
+++ b/include/hw/boards.h
@@ -3,8 +3,6 @@
 #ifndef HW_BOARDS_H
 #define HW_BOARDS_H
 
-#if !defined(CONFIG_USER_ONLY)
-
 #include "qemu/typedefs.h"
 #include "sysemu/blockdev.h"
 #include "sysemu/accel.h"
@@ -158,5 +156,3 @@ struct MachineState {
 };
 
 #endif
-
-#endif
diff --git a/exec.c b/exec.c
index fe64009..bc37c7b 100644
--- a/exec.c
+++ b/exec.c
@@ -26,7 +26,9 @@
 #include "cpu.h"
 #include "tcg.h"
 #include "hw/hw.h"
+#if !defined(CONFIG_USER_ONLY)
 #include "hw/boards.h"
+#endif
 #include "hw/qdev.h"
 #include "qemu/osdep.h"
 #include "sysemu/kvm.h"
-- 
MST

^ permalink raw reply related	[flat|nested] 25+ messages in thread

* [Qemu-devel] [PULL 21/25] virtio-scsi: drop duplicate CDB/SENSE SIZE
       [not found] <1426096767-30494-1-git-send-email-mst@redhat.com>
                   ` (19 preceding siblings ...)
  2015-03-11 19:51 ` [Qemu-devel] [PULL 20/25] exec: don't include hw/boards for linux-user Michael S. Tsirkin
@ 2015-03-11 19:51 ` Michael S. Tsirkin
  2015-03-11 19:51 ` [Qemu-devel] [PULL 22/25] uapi/virtio_scsi: allow overriding CDB/SENSE size Michael S. Tsirkin
                   ` (3 subsequent siblings)
  24 siblings, 0 replies; 25+ messages in thread
From: Michael S. Tsirkin @ 2015-03-11 19:51 UTC (permalink / raw)
  To: qemu-devel
  Cc: Cornelia Huck, Peter Maydell, Ming Lei, Fam Zheng, Paolo Bonzini

This is duplicated from the kernel header,
drop our copy.

Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
---
 include/hw/virtio/virtio-scsi.h | 2 --
 1 file changed, 2 deletions(-)

diff --git a/include/hw/virtio/virtio-scsi.h b/include/hw/virtio/virtio-scsi.h
index de2c739..e4b531e 100644
--- a/include/hw/virtio/virtio-scsi.h
+++ b/include/hw/virtio/virtio-scsi.h
@@ -30,8 +30,6 @@
         OBJECT_CHECK(VirtIOSCSI, (obj), TYPE_VIRTIO_SCSI)
 
 #define VIRTIO_SCSI_VQ_SIZE     128
-#define VIRTIO_SCSI_CDB_SIZE    32
-#define VIRTIO_SCSI_SENSE_SIZE  96
 #define VIRTIO_SCSI_MAX_CHANNEL 0
 #define VIRTIO_SCSI_MAX_TARGET  255
 #define VIRTIO_SCSI_MAX_LUN     16383
-- 
MST

^ permalink raw reply related	[flat|nested] 25+ messages in thread

* [Qemu-devel] [PULL 22/25] uapi/virtio_scsi: allow overriding CDB/SENSE size
       [not found] <1426096767-30494-1-git-send-email-mst@redhat.com>
                   ` (20 preceding siblings ...)
  2015-03-11 19:51 ` [Qemu-devel] [PULL 21/25] virtio-scsi: drop duplicate CDB/SENSE SIZE Michael S. Tsirkin
@ 2015-03-11 19:51 ` Michael S. Tsirkin
  2015-03-11 19:51 ` [Qemu-devel] [PULL 23/25] virtio-scsi: fix cdb/sense size Michael S. Tsirkin
                   ` (2 subsequent siblings)
  24 siblings, 0 replies; 25+ messages in thread
From: Michael S. Tsirkin @ 2015-03-11 19:51 UTC (permalink / raw)
  To: qemu-devel; +Cc: Peter Maydell, Paolo Bonzini

QEMU wants to use virtio scsi structures with
a different VIRTIO_SCSI_CDB_SIZE/VIRTIO_SCSI_SENSE_SIZE,
let's add ifdefs to allow overriding them.

Keep the old defines under new names:
VIRTIO_SCSI_CDB_DEFAULT_SIZE/VIRTIO_SCSI_SENSE_DEFAULT_SIZE,
since that's what these values really are:
defaults for cdb/sense size fields.

Suggested-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Acked-by: Paolo Bonzini <pbonzini@redhat.com>
---
 include/standard-headers/linux/virtio_scsi.h | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

diff --git a/include/standard-headers/linux/virtio_scsi.h b/include/standard-headers/linux/virtio_scsi.h
index 78ba9d3..ab66166 100644
--- a/include/standard-headers/linux/virtio_scsi.h
+++ b/include/standard-headers/linux/virtio_scsi.h
@@ -29,8 +29,16 @@
 
 #include "standard-headers/linux/virtio_types.h"
 
-#define VIRTIO_SCSI_CDB_SIZE   32
-#define VIRTIO_SCSI_SENSE_SIZE 96
+/* Default values of the CDB and sense data size configuration fields */
+#define VIRTIO_SCSI_CDB_DEFAULT_SIZE   32
+#define VIRTIO_SCSI_SENSE_DEFAULT_SIZE 96
+
+#ifndef VIRTIO_SCSI_CDB_SIZE
+#define VIRTIO_SCSI_CDB_SIZE VIRTIO_SCSI_CDB_DEFAULT_SIZE
+#endif
+#ifndef VIRTIO_SCSI_SENSE_SIZE
+#define VIRTIO_SCSI_SENSE_SIZE VIRTIO_SCSI_SENSE_DEFAULT_SIZE
+#endif
 
 /* SCSI command request, followed by data-out */
 struct virtio_scsi_cmd_req {
-- 
MST

^ permalink raw reply related	[flat|nested] 25+ messages in thread

* [Qemu-devel] [PULL 23/25] virtio-scsi: fix cdb/sense size
       [not found] <1426096767-30494-1-git-send-email-mst@redhat.com>
                   ` (21 preceding siblings ...)
  2015-03-11 19:51 ` [Qemu-devel] [PULL 22/25] uapi/virtio_scsi: allow overriding CDB/SENSE size Michael S. Tsirkin
@ 2015-03-11 19:51 ` Michael S. Tsirkin
  2015-03-11 19:51 ` [Qemu-devel] [PULL 24/25] virtio-scsi: clean out duplicate cdb field Michael S. Tsirkin
  2015-03-11 19:51 ` [Qemu-devel] [PULL 25/25] virtio-scsi: remove empty wrapper for cmd Michael S. Tsirkin
  24 siblings, 0 replies; 25+ messages in thread
From: Michael S. Tsirkin @ 2015-03-11 19:51 UTC (permalink / raw)
  To: qemu-devel; +Cc: Peter Maydell, Fam Zheng, Paolo Bonzini

Commit "virtio-scsi: use standard-headers" added
cdb and sense into req/rep structures, which
breaks uses of sizeof for these structures,
since qemu adds its own arrays on top.

To fix, redefine CDB/sense field size to 0.

Reported-by: Fam Zheng <famz@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
---
 include/hw/virtio/virtio-scsi.h |  3 +++
 hw/scsi/virtio-scsi.c           | 10 +++++-----
 2 files changed, 8 insertions(+), 5 deletions(-)

diff --git a/include/hw/virtio/virtio-scsi.h b/include/hw/virtio/virtio-scsi.h
index e4b531e..9423865 100644
--- a/include/hw/virtio/virtio-scsi.h
+++ b/include/hw/virtio/virtio-scsi.h
@@ -14,6 +14,9 @@
 #ifndef _QEMU_VIRTIO_SCSI_H
 #define _QEMU_VIRTIO_SCSI_H
 
+/* Override CDB/sense data size: they are dynamic (guest controlled) in QEMU */
+#define VIRTIO_SCSI_CDB_SIZE 0
+#define VIRTIO_SCSI_SENSE_SIZE 0
 #include "standard-headers/linux/virtio_scsi.h"
 #include "hw/virtio/virtio.h"
 #include "hw/pci/pci.h"
diff --git a/hw/scsi/virtio-scsi.c b/hw/scsi/virtio-scsi.c
index cfb52e8..ba51e06 100644
--- a/hw/scsi/virtio-scsi.c
+++ b/hw/scsi/virtio-scsi.c
@@ -476,7 +476,7 @@ static int virtio_scsi_parse_cdb(SCSIDevice *dev, SCSICommand *cmd,
     VirtIOSCSIReq *req = hba_private;
 
     if (cmd->len == 0) {
-        cmd->len = MIN(VIRTIO_SCSI_CDB_SIZE, SCSI_CMD_BUF_SIZE);
+        cmd->len = MIN(VIRTIO_SCSI_CDB_DEFAULT_SIZE, SCSI_CMD_BUF_SIZE);
         memcpy(cmd->buf, buf, cmd->len);
     }
 
@@ -642,8 +642,8 @@ static void virtio_scsi_reset(VirtIODevice *vdev)
     qbus_reset_all(&s->bus.qbus);
     s->resetting--;
 
-    vs->sense_size = VIRTIO_SCSI_SENSE_SIZE;
-    vs->cdb_size = VIRTIO_SCSI_CDB_SIZE;
+    vs->sense_size = VIRTIO_SCSI_SENSE_DEFAULT_SIZE;
+    vs->cdb_size = VIRTIO_SCSI_CDB_DEFAULT_SIZE;
     s->events_dropped = false;
 }
 
@@ -830,8 +830,8 @@ void virtio_scsi_common_realize(DeviceState *dev, Error **errp,
         return;
     }
     s->cmd_vqs = g_new0(VirtQueue *, s->conf.num_queues);
-    s->sense_size = VIRTIO_SCSI_SENSE_SIZE;
-    s->cdb_size = VIRTIO_SCSI_CDB_SIZE;
+    s->sense_size = VIRTIO_SCSI_SENSE_DEFAULT_SIZE;
+    s->cdb_size = VIRTIO_SCSI_CDB_DEFAULT_SIZE;
 
     s->ctrl_vq = virtio_add_queue(vdev, VIRTIO_SCSI_VQ_SIZE,
                                   ctrl);
-- 
MST

^ permalink raw reply related	[flat|nested] 25+ messages in thread

* [Qemu-devel] [PULL 24/25] virtio-scsi: clean out duplicate cdb field
       [not found] <1426096767-30494-1-git-send-email-mst@redhat.com>
                   ` (22 preceding siblings ...)
  2015-03-11 19:51 ` [Qemu-devel] [PULL 23/25] virtio-scsi: fix cdb/sense size Michael S. Tsirkin
@ 2015-03-11 19:51 ` Michael S. Tsirkin
  2015-03-11 19:51 ` [Qemu-devel] [PULL 25/25] virtio-scsi: remove empty wrapper for cmd Michael S. Tsirkin
  24 siblings, 0 replies; 25+ messages in thread
From: Michael S. Tsirkin @ 2015-03-11 19:51 UTC (permalink / raw)
  To: qemu-devel; +Cc: Peter Maydell, Paolo Bonzini

cdb is now part of cmd, drop it from req.
There's also nothing to check using build assert now.

Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Acked-by: Paolo Bonzini <pbonzini@redhat.com>
---
 include/hw/virtio/virtio-scsi.h | 7 +------
 hw/scsi/virtio-scsi.c           | 2 +-
 2 files changed, 2 insertions(+), 7 deletions(-)

diff --git a/include/hw/virtio/virtio-scsi.h b/include/hw/virtio/virtio-scsi.h
index 9423865..e3f27a6 100644
--- a/include/hw/virtio/virtio-scsi.h
+++ b/include/hw/virtio/virtio-scsi.h
@@ -109,8 +109,7 @@ typedef struct VirtIOSCSIReq {
     /* Note:
      * - fields before elem are initialized by virtio_scsi_init_req;
      * - elem is uninitialized at the time of allocation.
-     * - fields after elem (except the ending cdb[]) are zeroed by
-     *   virtio_scsi_init_req.
+     * - fields after elem are zeroed by virtio_scsi_init_req.
      * */
 
     VirtQueueElement elem;
@@ -137,16 +136,12 @@ typedef struct VirtIOSCSIReq {
     union {
         struct {
             VirtIOSCSICmdReq  cmd;
-            uint8_t           cdb[];
         } QEMU_PACKED;
         VirtIOSCSICtrlTMFReq  tmf;
         VirtIOSCSICtrlANReq   an;
     } req;
 } VirtIOSCSIReq;
 
-QEMU_BUILD_BUG_ON(offsetof(VirtIOSCSIReq, req.cdb) !=
-                  offsetof(VirtIOSCSIReq, req.cmd) + sizeof(VirtIOSCSICmdReq));
-
 #define DEFINE_VIRTIO_SCSI_PROPERTIES(_state, _conf_field)                     \
     DEFINE_PROP_UINT32("num_queues", _state, _conf_field.num_queues, 1),       \
     DEFINE_PROP_UINT32("max_sectors", _state, _conf_field.max_sectors, 0xFFFF),\
diff --git a/hw/scsi/virtio-scsi.c b/hw/scsi/virtio-scsi.c
index ba51e06..da0cff8 100644
--- a/hw/scsi/virtio-scsi.c
+++ b/hw/scsi/virtio-scsi.c
@@ -544,7 +544,7 @@ bool virtio_scsi_handle_cmd_req_prepare(VirtIOSCSI *s, VirtIOSCSIReq *req)
     }
     req->sreq = scsi_req_new(d, req->req.cmd.tag,
                              virtio_scsi_get_lun(req->req.cmd.lun),
-                             req->req.cdb, req);
+                             req->req.cmd.cdb, req);
 
     if (req->sreq->cmd.mode != SCSI_XFER_NONE
         && (req->sreq->cmd.mode != req->mode ||
-- 
MST

^ permalink raw reply related	[flat|nested] 25+ messages in thread

* [Qemu-devel] [PULL 25/25] virtio-scsi: remove empty wrapper for cmd
       [not found] <1426096767-30494-1-git-send-email-mst@redhat.com>
                   ` (23 preceding siblings ...)
  2015-03-11 19:51 ` [Qemu-devel] [PULL 24/25] virtio-scsi: clean out duplicate cdb field Michael S. Tsirkin
@ 2015-03-11 19:51 ` Michael S. Tsirkin
  24 siblings, 0 replies; 25+ messages in thread
From: Michael S. Tsirkin @ 2015-03-11 19:51 UTC (permalink / raw)
  To: qemu-devel
  Cc: Cornelia Huck, Peter Maydell, Ming Lei, Fam Zheng, Paolo Bonzini

The anonymous struct only has a single field now, drop the wrapper
structure.

Suggested-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Acked-by: Paolo Bonzini <pbonzini@redhat.com>
---
 include/hw/virtio/virtio-scsi.h | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/include/hw/virtio/virtio-scsi.h b/include/hw/virtio/virtio-scsi.h
index e3f27a6..f93b57d 100644
--- a/include/hw/virtio/virtio-scsi.h
+++ b/include/hw/virtio/virtio-scsi.h
@@ -134,9 +134,7 @@ typedef struct VirtIOSCSIReq {
         VirtIOSCSIEvent       event;
     } resp;
     union {
-        struct {
-            VirtIOSCSICmdReq  cmd;
-        } QEMU_PACKED;
+        VirtIOSCSICmdReq      cmd;
         VirtIOSCSICtrlTMFReq  tmf;
         VirtIOSCSICtrlANReq   an;
     } req;
-- 
MST

^ permalink raw reply related	[flat|nested] 25+ messages in thread

end of thread, other threads:[~2015-03-11 20:32 UTC | newest]

Thread overview: 25+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <1426096767-30494-1-git-send-email-mst@redhat.com>
2015-03-11 19:50 ` [Qemu-devel] [PULL 01/25] aml-build: don't modify child Michael S. Tsirkin
2015-03-11 19:50 ` [Qemu-devel] [PULL 02/25] aml-build: append opcodes using build_append_byte Michael S. Tsirkin
2015-03-11 19:50 ` [Qemu-devel] [PULL 03/25] acpi: fix aml_equal term implementation Michael S. Tsirkin
2015-03-11 19:50 ` [Qemu-devel] [PULL 04/25] acpi-test: update expected files Michael S. Tsirkin
2015-03-11 19:50 ` [Qemu-devel] [PULL 05/25] pci/shpc: fix signed integer overflow Michael S. Tsirkin
2015-03-11 19:50 ` [Qemu-devel] [PULL 06/25] machine: replace qemu opts with iommu property Michael S. Tsirkin
2015-03-11 19:50 ` [Qemu-devel] [PULL 07/25] machine: allowed/required kernel-irqchip support Michael S. Tsirkin
2015-03-11 19:50 ` [Qemu-devel] [PULL 08/25] machine: query kernel-irqchip property Michael S. Tsirkin
2015-03-11 19:51 ` [Qemu-devel] [PULL 09/25] kvm: add machine state to kvm_arch_init Michael S. Tsirkin
2015-03-11 19:51 ` [Qemu-devel] [PULL 10/25] machine: query kvm-shadow-mem machine property Michael S. Tsirkin
2015-03-11 19:51 ` [Qemu-devel] [PULL 11/25] machine: query phandle-start " Michael S. Tsirkin
2015-03-11 19:51 ` [Qemu-devel] [PULL 12/25] hw/boards: make it safe to include for linux-user Michael S. Tsirkin
2015-03-11 19:51 ` [Qemu-devel] [PULL 13/25] machine: query dump-guest-core machine property Michael S. Tsirkin
2015-03-11 19:51 ` [Qemu-devel] [PULL 14/25] machine: query mem-merge " Michael S. Tsirkin
2015-03-11 19:51 ` [Qemu-devel] [PULL 15/25] pci: Convert pci_nic_init() to Error to avoid qdev_init() Michael S. Tsirkin
2015-03-11 19:51 ` [Qemu-devel] [PULL 16/25] virtio-pci: Convert to realize() Michael S. Tsirkin
2015-03-11 19:51 ` [Qemu-devel] [PULL 17/25] tpm: Move memory subregion function into realize function Michael S. Tsirkin
2015-03-11 19:51 ` [Qemu-devel] [PULL 18/25] MAINTAINERS: drop aliguori@amazon.com Michael S. Tsirkin
2015-03-11 19:51 ` [Qemu-devel] [PULL 19/25] acpi: specify format for build_append_namestring Michael S. Tsirkin
2015-03-11 19:51 ` [Qemu-devel] [PULL 20/25] exec: don't include hw/boards for linux-user Michael S. Tsirkin
2015-03-11 19:51 ` [Qemu-devel] [PULL 21/25] virtio-scsi: drop duplicate CDB/SENSE SIZE Michael S. Tsirkin
2015-03-11 19:51 ` [Qemu-devel] [PULL 22/25] uapi/virtio_scsi: allow overriding CDB/SENSE size Michael S. Tsirkin
2015-03-11 19:51 ` [Qemu-devel] [PULL 23/25] virtio-scsi: fix cdb/sense size Michael S. Tsirkin
2015-03-11 19:51 ` [Qemu-devel] [PULL 24/25] virtio-scsi: clean out duplicate cdb field Michael S. Tsirkin
2015-03-11 19:51 ` [Qemu-devel] [PULL 25/25] virtio-scsi: remove empty wrapper for cmd Michael S. Tsirkin

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).