[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 6/8] machine: query phandle-start machine proper
From: |
Michael S. Tsirkin |
Subject: |
Re: [Qemu-devel] [PATCH 6/8] machine: query phandle-start machine property rather than qemu opts |
Date: |
Wed, 11 Mar 2015 15:39:57 +0100 |
On Wed, Mar 11, 2015 at 04:32:39PM +0200, Marcel Apfelbaum wrote:
> On 02/04/2015 05:43 PM, Marcel Apfelbaum wrote:
> >Fixes a QEMU crash when passing phandle_start parameter in command line.
> >
> >Signed-off-by: Marcel Apfelbaum <address@hidden>
> Please amend commit message:
>
> 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 accephandle-startssing machine properties through
> designated wrappers.
What does this mean?
>
> Signed-off-by: Marcel Apfelbaum <address@hidden>
I don't think this makes it clearer.
Maybe just given an example on how to reproduce the crash?
>
> >---
> > device_tree.c | 5 ++---
> > hw/core/machine.c | 5 +++++
> > include/hw/boards.h | 1 +
> > 3 files changed, 8 insertions(+), 3 deletions(-)
> >
> >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,
> >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:
> >