From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:37379) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TLzDl-0000IM-No for qemu-devel@nongnu.org; Wed, 10 Oct 2012 12:33:22 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1TLzDd-00029U-Lw for qemu-devel@nongnu.org; Wed, 10 Oct 2012 12:33:21 -0400 Received: from cantor2.suse.de ([195.135.220.15]:47096 helo=mx2.suse.de) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TLzDd-00029M-Cn for qemu-devel@nongnu.org; Wed, 10 Oct 2012 12:33:13 -0400 Message-ID: <5075A346.80601@suse.de> Date: Wed, 10 Oct 2012 18:33:10 +0200 From: =?ISO-8859-1?Q?Andreas_F=E4rber?= MIME-Version: 1.0 References: <1337742502-28565-1-git-send-email-afaerber@suse.de> <1337742502-28565-43-git-send-email-afaerber@suse.de> <5075912D.1090401@suse.de> In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Subject: Re: [Qemu-devel] [PATCH qom-next 42/59] xtensa_pic: Pass XtensaCPU to xtensa_ccompare_cb() List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Max Filippov Cc: qemu-devel@nongnu.org Am 10.10.2012 17:35, schrieb Max Filippov: > On Wed, Oct 10, 2012 at 7:15 PM, Andreas F=E4rber wr= ote: >> Am 23.05.2012 05:08, schrieb Andreas F=E4rber: >>> Needed for cpu_has_work(). >>> >>> Signed-off-by: Andreas F=E4rber >> >> Max, could you ack this trivial patch please? It still applies. >=20 > Well, it does but why do you want to add a level of indirection here? > Does that mean that cpu->env may change during cpu lifetime? > Commit message is not very helpful here. Patch 43/59 in that series updates cpu_has_work() argument to CPUState*, thus this patch prepares xtensa_pic as one of the callers. This is the only xtensa patch I have in my queue, so I wanted to avoid hitting you with a large resend. I see now that xtensa_set_irq could get an XtensaCPU opaque as well, but so far there was no need apparently, so that can be changed later. For target-specific code my general rule of thumb is, use FooCPU rather than CPUFooState arguments and opaques wherever possible since the need is growing. Also, any new fields that are not accessed by TCG should be placed into FooCPU rather than CPUFooState. Andreas >>> @@ -139,12 +140,14 @@ static void xtensa_ccompare_cb(void *opaque) >>> >>> void xtensa_irq_init(CPUXtensaState *env) >>> { >>> + XtensaCPU *cpu =3D xtensa_env_get_cpu(env); >>> + >>> env->irq_inputs =3D (void **)qemu_allocate_irqs( >>> xtensa_set_irq, env, env->config->ninterrupt); >>> if (xtensa_option_enabled(env->config, XTENSA_OPTION_TIMER_INTER= RUPT) && >>> env->config->nccompare > 0) { >>> env->ccompare_timer =3D >>> - qemu_new_timer_ns(vm_clock, &xtensa_ccompare_cb, env); >>> + qemu_new_timer_ns(vm_clock, &xtensa_ccompare_cb, cpu); >>> } >>> } --=20 SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 N=FCrnberg, Germany GF: Jeff Hawn, Jennifer Guild, Felix Imend=F6rffer; HRB 16746 AG N=FCrnbe= rg