From: Peter Dinda Date: Fri, 2 Aug 2013 22:27:32 +0000 (-0500) Subject: 8259A PIC obeys master ICW3 masking of the slave X-Git-Url: http://v3vee.org/palacios/gitweb/gitweb.cgi?a=commitdiff_plain;h=6addb3ba0cb9475a60eef985f0e949196beb6278;p=palacios.git 8259A PIC obeys master ICW3 masking of the slave --- diff --git a/palacios/src/devices/8259a.c b/palacios/src/devices/8259a.c index c10d1ef..08a8231 100644 --- a/palacios/src/devices/8259a.c +++ b/palacios/src/devices/8259a.c @@ -318,7 +318,9 @@ static int pic_lower_intr(struct v3_vm_info * vm, void * private_data, struct v3 static int pic_intr_pending_from_master(struct guest_info * info, void * private_data) { struct pic_internal * state = (struct pic_internal*)private_data; - return state->master_irr & (~(state->master_imr)); + return state->master_irr // interrupt pending in the master's irr + & (~(state->master_imr)) // and is not masked in the master + & (~(state->master_icw3)); // and the pin is not hooked to slave } static int pic_intr_pending_from_slave(struct guest_info * info, void * private_data) {