From cc0d079d4582ee0ed97b5e3e3da4f6cb2b5bd67f Mon Sep 17 00:00:00 2001 From: Aurelien Jarno Date: Mon, 15 Jun 2015 17:57:05 +0200 Subject: [PATCH] target-s390x: initialize I/O interrupt queue env->io_index[] should be set to -1 during CPU reset to mark the I/O interrupt queue as empty. Signed-off-by: Aurelien Jarno Signed-off-by: Alexander Graf --- target-s390x/cpu.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/target-s390x/cpu.c b/target-s390x/cpu.c index c4e8a87e1c..cc9cc379cd 100644 --- a/target-s390x/cpu.c +++ b/target-s390x/cpu.c @@ -106,6 +106,7 @@ static void s390_cpu_initial_reset(CPUState *s) { S390CPU *cpu = S390_CPU(s); CPUS390XState *env = &cpu->env; + int i; s390_cpu_reset(s); /* initial reset does not touch regs,fregs and aregs */ @@ -118,6 +119,9 @@ static void s390_cpu_initial_reset(CPUState *s) env->pfault_token = -1UL; env->ext_index = -1; + for (i = 0; i < ARRAY_SIZE(env->io_index); i++) { + env->io_index[i] = -1; + } /* tininess for underflow is detected before rounding */ set_float_detect_tininess(float_tininess_before_rounding, @@ -135,6 +139,7 @@ static void s390_cpu_full_reset(CPUState *s) S390CPU *cpu = S390_CPU(s); S390CPUClass *scc = S390_CPU_GET_CLASS(cpu); CPUS390XState *env = &cpu->env; + int i; scc->parent_reset(s); cpu->env.sigp_order = 0; @@ -148,6 +153,9 @@ static void s390_cpu_full_reset(CPUState *s) env->pfault_token = -1UL; env->ext_index = -1; + for (i = 0; i < ARRAY_SIZE(env->io_index); i++) { + env->io_index[i] = -1; + } /* tininess for underflow is detected before rounding */ set_float_detect_tininess(float_tininess_before_rounding,