qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH for-1.4 1/2] linux-user: Fix cpu_copy() usage


From: Igor Mammedov
Subject: Re: [Qemu-devel] [PATCH for-1.4 1/2] linux-user: Fix cpu_copy() usage
Date: Wed, 30 Jan 2013 08:18:23 +0100

On Wed, 30 Jan 2013 01:34:18 +0100
Andreas Färber <address@hidden> wrote:

> Commit b4558d7481aefc865b0b52bf9b285ebcf2e8b59f ((x86/Sparc/PPC)-user:
> fix cpu_copy) added a CPU reset after cpu_copy() inside linux-user code.
> This reverses the register copying that cpu_copy() does.
> 
> Clean this up by moving the cpu_reset() call to after cpu_init() but
> before memcpy(). This matches the initial CPU creation in linux-user.
> 
> Cc: Blue Swirl <address@hidden>
> Signed-off-by: Andreas Färber <address@hidden>
> Cc: Peter Maydell <address@hidden>
> ---
>  exec.c               |    6 ++++++
>  linux-user/syscall.c |    3 ---
>  2 Dateien geändert, 6 Zeilen hinzugefügt(+), 3 Zeilen entfernt(-)
> 
> diff --git a/exec.c b/exec.c
> index b85508b..8dfa458 100644
> --- a/exec.c
> +++ b/exec.c
> @@ -537,6 +537,12 @@ CPUArchState *cpu_copy(CPUArchState *env)
>      CPUWatchpoint *wp;
>  #endif
>  
> +#ifdef CONFIG_USER_ONLY
unnecessary ifdef-feniry here, cpu_copy() is linux-user only thing.


> +#if defined(TARGET_I386) || defined(TARGET_SPARC) || defined(TARGET_PPC)
> +    cpu_reset(ENV_GET_CPU(new_env));
> +#endif
> +#endif
> +
>      memcpy(new_env, env, sizeof(CPUArchState));
>  
>      /* Preserve chaining. */
> diff --git a/linux-user/syscall.c b/linux-user/syscall.c
> index 693e66f..6c254ba 100644
> --- a/linux-user/syscall.c
> +++ b/linux-user/syscall.c
> @@ -4361,9 +4361,6 @@ static int do_fork(CPUArchState *env, unsigned int 
> flags, abi_ulong newsp,
>          init_task_state(ts);
>          /* we create a new CPU instance. */
>          new_env = cpu_copy(env);
> -#if defined(TARGET_I386) || defined(TARGET_SPARC) || defined(TARGET_PPC)
> -        cpu_reset(ENV_GET_CPU(new_env));
> -#endif
>          /* Init regs that differ from the parent.  */
>          cpu_clone_regs(new_env, newsp);
>          new_env->opaque = ts;
> -- 
> 1.7.10.4
> 
> 
Otherwise looks good.

-- 
Regards,
  Igor



reply via email to

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