aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoraliguori <aliguori@c046a42c-6fe2-441c-8c8c-71466251a162>2009-01-26 20:32:18 +0000
committeraliguori <aliguori@c046a42c-6fe2-441c-8c8c-71466251a162>2009-01-26 20:32:18 +0000
commite0dd114c163bfba86a736dae00fb70758e1c0200 (patch)
treeec117bd87c4c4e5307d14741fbfae9eb6a4f4f22
parent57c7d9e57983d25ddf2ef995493366b9e15d32b4 (diff)
Check if the i8254 timer is active before deactivating it (Alexander Graf)
The HPET emulation can disable the i8254 when the HPET is in legacy mode, thus emulating the i8254's behavior. But if it does, the i8254 doesn't have to be running, so let's check to see if the timer works and not disable it if it's not. This fixes a segmentation fault when running Mac OS X as guest os. Signed-off-by: Alexander Graf <agraf@suse.de> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com> git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6460 c046a42c-6fe2-441c-8c8c-71466251a162
-rw-r--r--hw/i8254.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/hw/i8254.c b/hw/i8254.c
index a4a1efe9cc..44e453139b 100644
--- a/hw/i8254.c
+++ b/hw/i8254.c
@@ -467,7 +467,8 @@ static void pit_reset(void *opaque)
void hpet_pit_disable(void) {
PITChannelState *s;
s = &pit_state.channels[0];
- qemu_del_timer(s->irq_timer);
+ if (s->irq_timer)
+ qemu_del_timer(s->irq_timer);
}
/* When HPET is reset or leaving legacy mode, it must reenable i8254