Commit e0dd114c163bfba86a736dae00fb70758e1c0200

Authored by aliguori
1 parent 57c7d9e5

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
Showing 1 changed file with 2 additions and 1 deletions
hw/i8254.c
... ... @@ -467,7 +467,8 @@ static void pit_reset(void *opaque)
467 467 void hpet_pit_disable(void) {
468 468 PITChannelState *s;
469 469 s = &pit_state.channels[0];
470   - qemu_del_timer(s->irq_timer);
  470 + if (s->irq_timer)
  471 + qemu_del_timer(s->irq_timer);
471 472 }
472 473  
473 474 /* When HPET is reset or leaving legacy mode, it must reenable i8254
... ...