summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoryuri.benditovich@daynix.com <yuri.benditovich@daynix.com>2017-05-25 16:06:37 +0300
committerFrediano Ziglio <fziglio@redhat.com>2017-05-26 11:49:11 +0100
commit9b55ed704196a5747a2beede179d9a6f82ccf20e (patch)
tree4680a0464f8fd324027524fefbb0034294540915
parent1a81d6d31f4bc808b2e5bb1f33bf4f1421619d9f (diff)
qxl-wddm-dod: Fix unmapping of physical memory
https://bugzilla.redhat.com/show_bug.cgi?id=1454866 Due to wrong addresses passed to class driver, it never does unmapping of physical memory, causing a leak of virtual address range. On x86 systems the device fails to start due to failure to map physical memory range after 10-50 cycles of disable-enable. Signed-off-by: Yuri Benditovich <yuri.benditovich@daynix.com> Acked-by: Frediano Ziglio <fziglio@redhat.com>
-rwxr-xr-xqxldod/QxlDod.cpp8
1 files changed, 4 insertions, 4 deletions
diff --git a/qxldod/QxlDod.cpp b/qxldod/QxlDod.cpp
index 2d740be..bb71f22 100755
--- a/qxldod/QxlDod.cpp
+++ b/qxldod/QxlDod.cpp
@@ -3551,24 +3551,24 @@ void QxlDevice::UnmapMemory(void)
PDXGKRNL_INTERFACE pDxgkInterface = m_pQxlDod->GetDxgkInterface();
if (m_IoMapped && m_IoBase)
{
- pDxgkInterface->DxgkCbUnmapMemory( pDxgkInterface->DeviceHandle, &m_IoBase);
+ pDxgkInterface->DxgkCbUnmapMemory( pDxgkInterface->DeviceHandle, m_IoBase);
}
m_IoBase = NULL;
if (m_RomHdr)
{
- pDxgkInterface->DxgkCbUnmapMemory( pDxgkInterface->DeviceHandle, &m_RomHdr);
+ pDxgkInterface->DxgkCbUnmapMemory( pDxgkInterface->DeviceHandle, m_RomHdr);
m_RomHdr = NULL;
}
if (m_RamStart)
{
- pDxgkInterface->DxgkCbUnmapMemory( pDxgkInterface->DeviceHandle, &m_RamStart);
+ pDxgkInterface->DxgkCbUnmapMemory( pDxgkInterface->DeviceHandle, m_RamStart);
m_RamStart = NULL;
}
if (m_VRamStart)
{
- pDxgkInterface->DxgkCbUnmapMemory( pDxgkInterface->DeviceHandle, &m_VRamStart);
+ pDxgkInterface->DxgkCbUnmapMemory( pDxgkInterface->DeviceHandle, m_VRamStart);
m_VRamStart = NULL;
}
}