[Spice-devel] [PATCH 1/3] qxl-wddm-dod: Fix unmapping of physical memory

Frediano Ziglio fziglio at redhat.com
Fri May 26 10:53:10 UTC 2017


> 
> 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 at daynix.com>
> ---
>  qxldod/QxlDod.cpp | 8 ++++----
>  1 file 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;
>      }
>  }

Acked the entire series

Thanks,
  Frediano


More information about the Spice-devel mailing list