ppce500_spin: Initialize struct properly
authorAlexander Graf <agraf@suse.de>
Mon, 7 Apr 2014 14:48:42 +0000 (16:48 +0200)
committerAlexander Graf <agraf@suse.de>
Tue, 8 Apr 2014 09:20:05 +0000 (11:20 +0200)
The spinning struct is in guest endianness, so we need to initialize
its variables in guest endianness too.

This fixes booting e500 guests with SMP on x86 for me.

Signed-off-by: Alexander Graf <agraf@suse.de>
hw/ppc/ppce500_spin.c

index f9fdc8c5484b955674ecd0db1f8182f73be41ed3..d49f2b88037485705011a222bcb52c15a05bb758 100644 (file)
@@ -65,9 +65,9 @@ static void spin_reset(void *opaque)
     for (i = 0; i < MAX_CPUS; i++) {
         SpinInfo *info = &s->spin[i];
 
-        info->pir = i;
-        info->r3 = i;
-        info->addr = 1;
+        stl_p(&info->pir, i);
+        stq_p(&info->r3, i);
+        stq_p(&info->addr, 1);
     }
 }