From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:46356) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YVhwT-0005kR-4q for qemu-devel@nongnu.org; Wed, 11 Mar 2015 10:49:05 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1YVhwO-0007ng-5A for qemu-devel@nongnu.org; Wed, 11 Mar 2015 10:49:01 -0400 Received: from mx1.redhat.com ([209.132.183.28]:59215) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YVhwN-0007nQ-Th for qemu-devel@nongnu.org; Wed, 11 Mar 2015 10:48:56 -0400 Message-ID: <550055BB.8020802@redhat.com> Date: Wed, 11 Mar 2015 16:48:27 +0200 From: Marcel Apfelbaum MIME-Version: 1.0 References: <1423064635-19045-1-git-send-email-marcel@redhat.com> <1423064635-19045-7-git-send-email-marcel@redhat.com> <55005207.4040907@gmail.com> <20150311153916-mutt-send-email-mst@redhat.com> In-Reply-To: <20150311153916-mutt-send-email-mst@redhat.com> Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH 6/8] machine: query phandle-start machine property rather than qemu opts List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: "Michael S. Tsirkin" Cc: peter.maydell@linaro.org, peter.crosthwaite@xilinx.com, james.hogan@imgtec.com, jan.kiszka@siemens.com, qemu-devel@nongnu.org, agraf@suse.de, scottwood@freescale.com, borntraeger@de.ibm.com, cornelia.huck@de.ibm.com, pbonzini@redhat.com, leon.alrae@imgtec.com, aurelien@aurel32.net On 03/11/2015 04:39 PM, Michael S. Tsirkin wrote: > 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 >> 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? Please look at the fixed mail (sent a few seconds later) Thanks, Marcel > >> >> Signed-off-by: Marcel Apfelbaum > > > 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 >>> @@ -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: >>>