Am 11.05.2012 13:28, schrieb Alexander Graf: > > On 11.05.2012, at 13:26, Andreas Färber wrote: > >> Am 11.05.2012 13:22, schrieb Peter Maydell: >>> On 10 May 2012 01:14, Andreas Färber <afaer...@suse.de> wrote: >>>> diff --git a/linux-user/syscall.c b/linux-user/syscall.c >>>> index 20d2a74..539af3f 100644 >>>> --- a/linux-user/syscall.c >>>> +++ b/linux-user/syscall.c >>>> @@ -4262,7 +4262,7 @@ static int do_fork(CPUArchState *env, unsigned int >>>> flags, abi_ulong newsp, >>>> /* we create a new CPU instance. */ >>>> new_env = cpu_copy(env); >>>> #if defined(TARGET_I386) || defined(TARGET_SPARC) || defined(TARGET_PPC) >>>> - cpu_state_reset(new_env); >>>> + cpu_reset(ENV_GET_CPU(new_env)); >>>> #endif >>>> /* Init regs that differ from the parent. */ >>>> cpu_clone_regs(new_env, newsp); >>>> -- >>> >>> Do you have any plans to try to rationalise the handling of reset >>> so that we consistently either do or don't reset the cpu here, >>> rather than having it done based on a TARGET_* ifdef ? >> >> Igor had an RFC for x86; sparc and ppc reset I haven't looked into yet. >> Cc'ing Alex and Blue. > > Why would you ever not want to reset the CPU for a new thread?
cpu_copy() -> cpu_init() do so themselves for some architectures. Andreas -- SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer; HRB 16746 AG Nürnberg