diff options
author | Andreas Färber <afaerber@suse.de> | 2012-10-31 02:41:11 +0100 |
---|---|---|
committer | Andreas Färber <afaerber@suse.de> | 2012-12-19 01:01:36 +0100 |
commit | c92458538f501eda585b4b774c50644aed391a8a (patch) | |
tree | f808d560f27889dbb807be4598056f55425ad18d /hw/alpha_typhoon.c | |
parent | ad6011775a324d7c3e2a8bd824e03c5e576dda48 (diff) |
target-alpha: Avoid leaking the alarm timer over reset
Move the timer from CPUAlphaState to AlphaCPU to avoid the pointer being
zero'ed once we implement reset. Would cause a segfault in
sys_helper.c:helper_set_alarm().
This also simplifies timer initialization in Typhoon.
Signed-off-by: Andreas Färber <afaerber@suse.de>
Acked-by: Richard Henderson <rth@twiddle.net>
Diffstat (limited to 'hw/alpha_typhoon.c')
-rw-r--r-- | hw/alpha_typhoon.c | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/hw/alpha_typhoon.c b/hw/alpha_typhoon.c index 4cc810fb21..40b3a47c7e 100644 --- a/hw/alpha_typhoon.c +++ b/hw/alpha_typhoon.c @@ -724,8 +724,7 @@ PCIBus *typhoon_init(ram_addr_t ram_size, ISABus **isa_bus, AlphaCPU *cpu = cpus[i]; s->cchip.cpu[i] = cpu; if (cpu != NULL) { - CPUAlphaState *env = &cpu->env; - env->alarm_timer = qemu_new_timer_ns(rtc_clock, + cpu->alarm_timer = qemu_new_timer_ns(rtc_clock, typhoon_alarm_timer, (void *)((uintptr_t)s + i)); } |