qemu-devel
[Top][All Lists]
Advanced

[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:
> >



reply via email to

[Prev in Thread] Current Thread [Next in Thread]