On Thu,  5 Mar 2015 12:38:47 -0300
Eduardo Habkost <ehabk...@redhat.com> wrote:

> Instead of initializing cpu->as and cpu->thread_id while holding
> cpu_list_lock(), initialize it earlier.
> 
> This allows the code handling cpu_index and global CPU list to be
> isolated from the rest.
> 
> Signed-off-by: Eduardo Habkost <ehabk...@redhat.com>
Reviewed-by: Igor Mammedov <imamm...@redhat.com>

> ---
>  exec.c | 9 +++++----
>  1 file changed, 5 insertions(+), 4 deletions(-)
> 
> diff --git a/exec.c b/exec.c
> index 8220535..2e370d0 100644
> --- a/exec.c
> +++ b/exec.c
> @@ -534,6 +534,11 @@ void cpu_exec_init(CPUArchState *env)
>      CPUState *some_cpu;
>      int cpu_index;
>  
> +#ifndef CONFIG_USER_ONLY
> +    cpu->as = &address_space_memory;
> +    cpu->thread_id = qemu_get_thread_id();
> +#endif
> +
>  #if defined(CONFIG_USER_ONLY)
>      cpu_list_lock();
>  #endif
> @@ -542,10 +547,6 @@ void cpu_exec_init(CPUArchState *env)
>          cpu_index++;
>      }
>      cpu->cpu_index = cpu_index;
> -#ifndef CONFIG_USER_ONLY
> -    cpu->as = &address_space_memory;
> -    cpu->thread_id = qemu_get_thread_id();
> -#endif
>      QTAILQ_INSERT_TAIL(&cpus, cpu, node);
>  #if defined(CONFIG_USER_ONLY)
>      cpu_list_unlock();


Reply via email to