aboutsummaryrefslogtreecommitdiff
path: root/target-s390x/cpu.c
diff options
context:
space:
mode:
authorAurelien Jarno <aurelien@aurel32.net>2015-06-15 17:57:04 +0200
committerAlexander Graf <agraf@suse.de>2015-06-17 12:40:50 +0200
commit7107e5a756317151666d47d1bc1e170293babaff (patch)
tree6bbae28005447073685fd4e16ad4021666b0ffce /target-s390x/cpu.c
parent06e3c077daa08c0a616e9507eb737401883ab645 (diff)
target-s390x: correctly initialize ext interrupt queue
env->ext_index should be initialized to -1 to mark the external interrupt queue as emtpy. This should not be done in s390_cpu_initfn as all the interrupt fields are later reset to 0 by the memset in s390_cpu_initial_reset or s390_cpu_full_reset. Move the initialization there. Signed-off-by: Aurelien Jarno <aurelien@aurel32.net> Signed-off-by: Alexander Graf <agraf@suse.de>
Diffstat (limited to 'target-s390x/cpu.c')
-rw-r--r--target-s390x/cpu.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/target-s390x/cpu.c b/target-s390x/cpu.c
index 7f17823e40..c4e8a87e1c 100644
--- a/target-s390x/cpu.c
+++ b/target-s390x/cpu.c
@@ -117,6 +117,7 @@ static void s390_cpu_initial_reset(CPUState *s)
env->cregs[14] = CR14_RESET;
env->pfault_token = -1UL;
+ env->ext_index = -1;
/* tininess for underflow is detected before rounding */
set_float_detect_tininess(float_tininess_before_rounding,
@@ -146,6 +147,7 @@ static void s390_cpu_full_reset(CPUState *s)
env->cregs[14] = CR14_RESET;
env->pfault_token = -1UL;
+ env->ext_index = -1;
/* tininess for underflow is detected before rounding */
set_float_detect_tininess(float_tininess_before_rounding,
@@ -207,7 +209,6 @@ static void s390_cpu_initfn(Object *obj)
s390_cpu_set_state(CPU_STATE_STOPPED, cpu);
#endif
env->cpu_num = cpu_num++;
- env->ext_index = -1;
if (tcg_enabled() && !inited) {
inited = true;