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 <ag...@suse.de> --- hw/ppc/ppce500_spin.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/hw/ppc/ppce500_spin.c b/hw/ppc/ppce500_spin.c index f9fdc8c..d49f2b8 100644 --- a/hw/ppc/ppce500_spin.c +++ b/hw/ppc/ppce500_spin.c @@ -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); } } -- 1.8.1.4