RHBZ: 856246 --- miniport/qxl.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/miniport/qxl.c b/miniport/qxl.c index f5d6b48..629fbdb 100644 --- a/miniport/qxl.c +++ b/miniport/qxl.c @@ -1298,7 +1298,7 @@ err: VOID InterruptCallback(PVOID dev_extension, PVOID Context) { QXLExtension *dev_ext = dev_extension; - UINT32 pending = VideoPortInterlockedExchange(&dev_ext->ram_header->int_pending, 0); + UINT32 pending = (UINT32)Context; if (pending & QXL_INTERRUPT_DISPLAY) { VideoPortSetEvent(dev_ext, dev_ext->display_event); @@ -1316,14 +1316,14 @@ VOID InterruptCallback(PVOID dev_extension, PVOID Context) BOOLEAN Interrupt(PVOID dev_extension) { QXLExtension *dev_ext = dev_extension; + UINT32 pending; - if (!(dev_ext->ram_header->int_pending & dev_ext->ram_header->int_mask)) { + pending = VideoPortInterlockedExchange(&dev_ext->ram_header->int_pending, 0); + if (!(pending & dev_ext->ram_header->int_mask)) { 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)) { + if (!VideoPortQueueDpc(dev_extension, InterruptCallback, (void *)pending)) { VideoPortLogError(dev_extension, NULL, E_UNEXPECTED, QXLERR_INT_DELIVERY); dev_ext->ram_header->int_mask = WIN_QXL_INT_MASK; VideoPortWritePortUchar((PUCHAR)dev_ext->io_base + QXL_IO_UPDATE_IRQ, 0); -- 1.8.3.1 _______________________________________________ Spice-devel mailing list Spice-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/spice-devel