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
[email protected]
http://lists.freedesktop.org/mailman/listinfo/spice-devel