QXL_IO_UPDATE_IRQ causes the device to check int_mask and int_pending and issue an interrupt if that is required. Since we just zeroed int_mask, no interrupt will ever be issued. Since we issue another QXL_IO_UPDATE_IRQ in the interrupt routine DPC right after resetting int_mask any pending interrupt will be raised then. RHBZ: 856246 --- Yonit, this is what I came up with after our talk, much simpler, doesn't change int_mask, tell me if it makes sense. The other patch (change to int_mask to include only handled interrupts, not ~0) remains, still needs review, thanks! miniport/qxl.c | 1 - 1 file changed, 1 deletion(-) diff --git a/miniport/qxl.c b/miniport/qxl.c index f5d6b48..ce37f07 100644 --- a/miniport/qxl.c +++ b/miniport/qxl.c @@ -1321,7 +1321,6 @@ BOOLEAN Interrupt(PVOID dev_extension) return FALSE; } dev_ext->ram_header->int_mask = 0; - VideoPortWritePortUchar((PUCHAR)dev_ext->io_base + QXL_IO_UPDATE_IRQ, 0); if (!VideoPortQueueDpc(dev_extension, InterruptCallback, NULL)) { VideoPortLogError(dev_extension, NULL, E_UNEXPECTED, QXLERR_INT_DELIVERY); -- 1.8.3.1 _______________________________________________ Spice-devel mailing list Spice-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/spice-devel