aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--hw/cirrus_vga.c2
-rw-r--r--hw/pc.c12
2 files changed, 10 insertions, 4 deletions
diff --git a/hw/cirrus_vga.c b/hw/cirrus_vga.c
index 2d0f66a..8e223e2 100644
--- a/hw/cirrus_vga.c
+++ b/hw/cirrus_vga.c
@@ -3228,6 +3228,8 @@ void isa_cirrus_vga_init(DisplayState *ds, uint8_t *vga_ram_base,
vga_common_init((VGAState *)s,
ds, vga_ram_base, vga_ram_offset, vga_ram_size);
cirrus_init_common(s, CIRRUS_ID_CLGD5430, 0);
+ s->console = graphic_console_init(s->ds, s->update, s->invalidate,
+ s->screen_dump, s->text_update, s);
/* XXX ISA-LFB support */
}
diff --git a/hw/pc.c b/hw/pc.c
index 7461a08..f20944a 100644
--- a/hw/pc.c
+++ b/hw/pc.c
@@ -121,10 +121,14 @@ static void pic_irq_request(void *opaque, int irq, int level)
if (!level)
return;
- while (env) {
- if (apic_accept_pic_intr(env))
- apic_local_deliver(env, APIC_LINT0);
- env = env->next_cpu;
+ if (env->apic_state) {
+ while (env) {
+ if (apic_accept_pic_intr(env))
+ apic_local_deliver(env, APIC_LINT0);
+ env = env->next_cpu;
+ }
+ } else {
+ cpu_interrupt(env, CPU_INTERRUPT_HARD);
}
}