X-Git-Url: http://v3vee.org/palacios/gitweb/gitweb.cgi?a=blobdiff_plain;f=palacios%2Fsrc%2Fdevices%2F8259a.c;h=08a8231af2e084d9436d1e540cd73c76f00e55d4;hb=f97c2c116e958d0e87e7303fc1d00fdf0b148893;hp=c10d1efcbc65e64490ea6ffdfbadb1fb81886d7c;hpb=013d95f63ad584b8307ca90a82f8649b0bd7a818;p=palacios.releases.git 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) {