From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:36610) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1brvwm-00047X-Jr for qemu-devel@nongnu.org; Wed, 05 Oct 2016 19:50:01 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1brvwg-0001So-Kj for qemu-devel@nongnu.org; Wed, 05 Oct 2016 19:49:59 -0400 Received: from out4434.biz.mail.alibaba.com ([47.88.44.34]:32805) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1brvwg-0001Sg-AO for qemu-devel@nongnu.org; Wed, 05 Oct 2016 19:49:54 -0400 Message-ID: <57F5936E.2030607@emindsoft.com.cn> Date: Thu, 06 Oct 2016 07:57:34 +0800 From: Chen Gang MIME-Version: 1.0 References: <1475696333-8706-1-git-send-email-lvivier@redhat.com> <1475696333-8706-17-git-send-email-lvivier@redhat.com> In-Reply-To: <1475696333-8706-17-git-send-email-lvivier@redhat.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Subject: Re: [Qemu-devel] [PATCH 16/19] target-tilegx: move cpu_exec_realize() to realize function List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Laurent Vivier , qemu-devel@nongnu.org Cc: David Gibson , Paolo Bonzini , Markus Armbruster , Eduardo Habkost , Bharata B Rao , Peter Maydell , Matthew Rosato , Chen Gang On 10/6/16 03:38, Laurent Vivier wrote: > I've removed the cannot_destroy_with_object_finalize_yet field as > cpu_exec_init() is not called by tilegx_cpu_initfn() anymore > (not tested with QOM command as tilegx is only available in linux-user > mode) > For master branch, I can not find cpu_exec_realize in total source code, I am not quite sure whether it is ok or not. And in honest, now, tilegx-linux-user is not implemented completely, the floating point insns are not supported by our main branch (which should be one of main feature for tilegx) -- which I should try. Thanks. > CC: Chen Gang > Signed-off-by: Laurent Vivier > --- > target-tilegx/cpu.c | 15 +++++++-------- > 1 file changed, 7 insertions(+), 8 deletions(-) > > diff --git a/target-tilegx/cpu.c b/target-tilegx/cpu.c > index f7ec920..6be69ef 100644 > --- a/target-tilegx/cpu.c > +++ b/target-tilegx/cpu.c > @@ -92,6 +92,13 @@ static void tilegx_cpu_realizefn(DeviceState *dev, Error **errp) > { > CPUState *cs = CPU(dev); > TileGXCPUClass *tcc = TILEGX_CPU_GET_CLASS(dev); > + Error *local_err = NULL; > + > + cpu_exec_realize(cs, &local_err); > + if (local_err != NULL) { > + error_propagate(errp, local_err); > + return; > + } > > cpu_reset(cs); > qemu_init_vcpu(cs); > @@ -108,7 +115,6 @@ static void tilegx_cpu_initfn(Object *obj) > > cs->env_ptr = env; > cpu_exec_init(cs, &error_abort); > - cpu_exec_realize(cs, &error_abort); > > if (tcg_enabled() && !tcg_initialized) { > tcg_initialized = true; > @@ -163,13 +169,6 @@ static void tilegx_cpu_class_init(ObjectClass *oc, void *data) > cc->set_pc = tilegx_cpu_set_pc; > cc->handle_mmu_fault = tilegx_cpu_handle_mmu_fault; > cc->gdb_num_core_regs = 0; > - > - /* > - * Reason: tilegx_cpu_initfn() calls cpu_exec_init(), which saves > - * the object in cpus -> dangling pointer after final > - * object_unref(). > - */ > - dc->cannot_destroy_with_object_finalize_yet = true; > } > > static const TypeInfo tilegx_cpu_type_info = { > -- Chen Gang (陈刚) Managing Natural Environments is the Duty of Human Beings. -- Chen Gang (陈刚) Managing Natural Environments is the Duty of Human Beings.