[Mesa-dev] [PATCH] clover: Fix host access validation for sub-buffer creation
Francisco Jerez
currojerez at riseup.net
Fri Apr 20 01:30:58 UTC 2018
Aaron Watry <awatry at gmail.com> writes:
> From CL 1.2 Section 5.2.1:
> CL_INVALID_VALUE if buffer was created with CL_MEM_HOST_WRITE_ONLY and
> flags specify CL_MEM_HOST_READ_ONLY , or if buffer was created with
> CL_MEM_HOST_READ_ONLY and flags specify CL_MEM_HOST_WRITE_ONLY , or if
> buffer was created with CL_MEM_HOST_NO_ACCESS and flags specify
> CL_MEM_HOST_READ_ONLY or CL_MEM_HOST_WRITE_ONLY .
>
> Fixes CL 1.2 CTS test/api get_buffer_info
>
> v2: Correct host_access_flags check (Francisco)
>
> Signed-off-by: Aaron Watry <awatry at gmail.com>
> Cc: Francisco Jerez <currojerez at riseup.net>
> ---
> src/gallium/state_trackers/clover/api/memory.cpp | 8 ++++++--
> 1 file changed, 6 insertions(+), 2 deletions(-)
>
> diff --git a/src/gallium/state_trackers/clover/api/memory.cpp b/src/gallium/state_trackers/clover/api/memory.cpp
> index 9b3cd8b1f5..e83be0286a 100644
> --- a/src/gallium/state_trackers/clover/api/memory.cpp
> +++ b/src/gallium/state_trackers/clover/api/memory.cpp
> @@ -57,8 +57,12 @@ namespace {
> parent.flags() & host_access_flags) |
> (parent.flags() & host_ptr_flags));
>
> - if (~flags & parent.flags() &
> - ((dev_access_flags & ~CL_MEM_READ_WRITE) | host_access_flags))
> + if (~flags & parent.flags() & (dev_access_flags & ~CL_MEM_READ_WRITE))
> + throw error(CL_INVALID_VALUE);
> +
> + //Check if new host access flags cause a mismatch between host-read/write-only.
Space between '//' and comment, and limit to 80 columns. With that
fixed:
Reviewed-by: Francisco Jerez <currojerez at riseup.net>
> + if (!(flags & CL_MEM_HOST_NO_ACCESS) &&
> + (~flags & parent.flags() & host_access_flags))
> throw error(CL_INVALID_VALUE);
>
> return flags;
> --
> 2.14.1
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 227 bytes
Desc: not available
URL: <https://lists.freedesktop.org/archives/mesa-dev/attachments/20180419/9a8492bc/attachment.sig>
More information about the mesa-dev
mailing list