diff mbox

linux-user: fix broken cpu_copy()

Message ID 1427115352-4948-1-git-send-email-leon.alrae@imgtec.com
State New
Headers show

Commit Message

Leon Alrae March 23, 2015, 12:55 p.m. UTC
New threads always point at the same env which is incorrect and usually leads
to a crash.

Signed-off-by: Leon Alrae <leon.alrae@imgtec.com>
---
Hi,

This patch fixes the bug introduced in:

commit 2994fd96d986578a342f2342501b4ad30f6d0a85
Author: Eduardo Habkost <ehabkost@redhat.com>

    cpu: Make cpu_init() return QOM CPUState object

Regards,
Leon
---
 linux-user/main.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Andreas Färber March 23, 2015, 1:02 p.m. UTC | #1
Am 23.03.2015 um 13:55 schrieb Leon Alrae:
> New threads always point at the same env which is incorrect and usually leads
> to a crash.
> 
> Signed-off-by: Leon Alrae <leon.alrae@imgtec.com>
> ---
> Hi,
> 
> This patch fixes the bug introduced in:
> 
> commit 2994fd96d986578a342f2342501b4ad30f6d0a85
> Author: Eduardo Habkost <ehabkost@redhat.com>
> 
>     cpu: Make cpu_init() return QOM CPUState object
> 
> Regards,
> Leon
> ---
>  linux-user/main.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/linux-user/main.c b/linux-user/main.c
> index 6e446de..04668e8 100644
> --- a/linux-user/main.c
> +++ b/linux-user/main.c
> @@ -3453,7 +3453,7 @@ CPUArchState *cpu_copy(CPUArchState *env)
>  {
>      CPUState *cpu = ENV_GET_CPU(env);
>      CPUState *new_cpu = cpu_init(cpu_model);
> -    CPUArchState *new_env = cpu->env_ptr;
> +    CPUArchState *new_env = new_cpu->env_ptr;
>      CPUBreakpoint *bp;
>      CPUWatchpoint *wp;
>  

Clearly my fault and might explain some breakage in our OBS,

Reviewed-by: Andreas Färber <afaerber@suse.de>

Riku, are you queuing this (-rc1 tomorrow!) or should I take it for a
CPU pull?

Thanks,
Andreas
Andreas Färber March 23, 2015, 1:19 p.m. UTC | #2
Am 23.03.2015 um 14:02 schrieb Andreas Färber:
> Am 23.03.2015 um 13:55 schrieb Leon Alrae:
>> New threads always point at the same env which is incorrect and usually leads

Please remember to break after 76 chars. (Look at `git log` output.)

Andreas

>> to a crash.
>>
>> Signed-off-by: Leon Alrae <leon.alrae@imgtec.com>
>> ---
>> Hi,
>>
>> This patch fixes the bug introduced in:
>>
>> commit 2994fd96d986578a342f2342501b4ad30f6d0a85
>> Author: Eduardo Habkost <ehabkost@redhat.com>
>>
>>     cpu: Make cpu_init() return QOM CPUState object
>>
>> Regards,
>> Leon
>> ---
>>  linux-user/main.c | 2 +-
>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/linux-user/main.c b/linux-user/main.c
>> index 6e446de..04668e8 100644
>> --- a/linux-user/main.c
>> +++ b/linux-user/main.c
>> @@ -3453,7 +3453,7 @@ CPUArchState *cpu_copy(CPUArchState *env)
>>  {
>>      CPUState *cpu = ENV_GET_CPU(env);
>>      CPUState *new_cpu = cpu_init(cpu_model);
>> -    CPUArchState *new_env = cpu->env_ptr;
>> +    CPUArchState *new_env = new_cpu->env_ptr;
>>      CPUBreakpoint *bp;
>>      CPUWatchpoint *wp;
>>  
> 
> Clearly my fault and might explain some breakage in our OBS,
> 
> Reviewed-by: Andreas Färber <afaerber@suse.de>
> 
> Riku, are you queuing this (-rc1 tomorrow!) or should I take it for a
> CPU pull?
> 
> Thanks,
> Andreas
Riku Voipio March 23, 2015, 1:23 p.m. UTC | #3
On Monday, March 23, 2015 3:02:29 PM EET, Andreas Färber wrote:
> Am 23.03.2015 um 13:55 schrieb Leon Alrae:
>> New threads always point at the same env which is incorrect 
>> and usually leads
>> to a crash.
>> 
>> Signed-off-by: Leon Alrae <leon.alrae@imgtec.com>
>> ---
>> Hi, ...
>
> Clearly my fault and might explain some breakage in our OBS,
>
> Reviewed-by: Andreas Färber <afaerber@suse.de>
>
> Riku, are you queuing this (-rc1 tomorrow!) or should I take it for a
> CPU pull?

I can add this, I only have two patches so far qued.

Riku
diff mbox

Patch

diff --git a/linux-user/main.c b/linux-user/main.c
index 6e446de..04668e8 100644
--- a/linux-user/main.c
+++ b/linux-user/main.c
@@ -3453,7 +3453,7 @@  CPUArchState *cpu_copy(CPUArchState *env)
 {
     CPUState *cpu = ENV_GET_CPU(env);
     CPUState *new_cpu = cpu_init(cpu_model);
-    CPUArchState *new_env = cpu->env_ptr;
+    CPUArchState *new_env = new_cpu->env_ptr;
     CPUBreakpoint *bp;
     CPUWatchpoint *wp;