Re: [PATCH qxl-wddm-dod v5 1/7] Use MmMapIoSpaceEx instead of MmMapIoSpace

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, Sep 26, 2016 at 04:00:05PM +0300, Sameeh Jubran wrote:
> Disable execution bit on mapping improving security.
> 
> MmMapIoSpaceEx is available only in Windows 10 thus
> the macros are used.

Hey, looks good to me. Just one question, by default if this is built on
a Windows 10 system, I guess MmMapIoSpaceEx is going to be used. However
we can override NTDDI_VERSION to WIN8 if we want to build a driver which
is going to work on both win8 and win10? Or is this working differently?

Christophe

> 
> Based on a patch by Sandy Stutsman <sstutsma@xxxxxxxxxx>
> 
> Signed-off-by: Sameeh Jubran <sameeh@xxxxxxxxxx>
> ---
>  qxldod/QxlDod.cpp | 13 ++++++++++++-
>  1 file changed, 12 insertions(+), 1 deletion(-)
> 
> diff --git a/qxldod/QxlDod.cpp b/qxldod/QxlDod.cpp
> index accf895..798b2f0 100755
> --- a/qxldod/QxlDod.cpp
> +++ b/qxldod/QxlDod.cpp
> @@ -2009,17 +2009,28 @@ MapFrameBuffer(
>          return STATUS_INVALID_PARAMETER;
>      }
>  
> +#if NTDDI_VERSION >= NTDDI_WIN10
> +    *VirtualAddress = MmMapIoSpaceEx(PhysicalAddress,
> +        Length,
> +        PAGE_WRITECOMBINE | PAGE_READWRITE);
> +#else
>      *VirtualAddress = MmMapIoSpace(PhysicalAddress,
>                                     Length,
>                                     MmWriteCombined);
> +#endif
>      if (*VirtualAddress == NULL)
>      {
>          // The underlying call to MmMapIoSpace failed. This may be because, MmWriteCombined
>          // isn't supported, so try again with MmNonCached
> -
> +#if NTDDI_VERSION >= NTDDI_WIN10
> +        *VirtualAddress = MmMapIoSpaceEx(PhysicalAddress,
> +            Length,
> +            (PAGE_NOCACHE | PAGE_READWRITE));
> +#else
>          *VirtualAddress = MmMapIoSpace(PhysicalAddress,
>                                         Length,
>                                         MmNonCached);
> +#endif
>          if (*VirtualAddress == NULL)
>          {
>              DbgPrint(TRACE_LEVEL_ERROR, ("MmMapIoSpace returned a NULL buffer when trying to allocate %lu bytes", Length));
> -- 
> 2.7.4
> 
> _______________________________________________
> Spice-devel mailing list
> Spice-devel@xxxxxxxxxxxxxxxxxxxxx
> https://lists.freedesktop.org/mailman/listinfo/spice-devel

Attachment: signature.asc
Description: PGP signature

_______________________________________________
Spice-devel mailing list
Spice-devel@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/spice-devel

[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]     [Monitors]