Re: [Mesa-dev] [PATCH 1/2] gbm/dri2: propagate errors when creating a DMA-BUF fd

2016-09-22 Thread Emil Velikov
Hi Nicholas,

On 8 September 2016 at 20:55, Nicholas Bishop  wrote:
> Changed dri2_query_image to check the return value of
> resource_get_handle and return GL_FALSE if an error occurs. Similarly
> changed gbm_dri_bo_get_fd to check the return value of queryImage and
> return -1 (an invalid file descriptor) if an error occurs.
>
> Updated the comment for gbm_bo_get_fd to say that -1 is returned if
> an error occurs.
>
> For reference this is an example callstack that should propagate the
> error back to the user:
>
> i915_drm_buffer_get_handle
> i915_texture_get_handle
> u_resource_get_handle_vtbl
> dri2_query_image
> gbm_dri_bo_get_fd
> gbm_bo_get_fd
>
> Signed-off-by: Nicholas Bishop 
> ---
>  src/gallium/state_trackers/dri/dri2.c | 11 +++
>  src/gbm/backends/dri/gbm_dri.c|  8 +---
>  src/gbm/main/gbm.c|  3 ++-
Thanks for the patches. I've split this into two (loader src/gbm and
"driver" src/gallium...) fixes, tagged for stable, applied some coding
style polish and pushed the series to master.

-Emil
___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev


Re: [Mesa-dev] [PATCH 1/2] gbm/dri2: propagate errors when creating a DMA-BUF fd

2016-09-22 Thread Nicholas Bishop
Bump, could someone push this?

Thanks,
-Nicholas

On Wed, Sep 14, 2016 at 1:06 PM, Nicholas Bishop  wrote:
> Thanks for review. Could someone with commit access push this for me?
>
> On Wed, Sep 14, 2016 at 8:48 AM, Eric Engestrom
>  wrote:
>> On Thu, Sep 08, 2016 at 03:55:02PM -0400, Nicholas Bishop wrote:
>>> Changed dri2_query_image to check the return value of
>>> resource_get_handle and return GL_FALSE if an error occurs. Similarly
>>> changed gbm_dri_bo_get_fd to check the return value of queryImage and
>>> return -1 (an invalid file descriptor) if an error occurs.
>>>
>>> Updated the comment for gbm_bo_get_fd to say that -1 is returned if
>>> an error occurs.
>>>
>>> For reference this is an example callstack that should propagate the
>>> error back to the user:
>>>
>>> i915_drm_buffer_get_handle
>>> i915_texture_get_handle
>>> u_resource_get_handle_vtbl
>>> dri2_query_image
>>> gbm_dri_bo_get_fd
>>> gbm_bo_get_fd
>>>
>>> Signed-off-by: Nicholas Bishop 
>>
>> Looks good to me
>> Reviewed-by: Eric Engestrom 
>>
>>> ---
>>>  src/gallium/state_trackers/dri/dri2.c | 11 +++
>>>  src/gbm/backends/dri/gbm_dri.c|  8 +---
>>>  src/gbm/main/gbm.c|  3 ++-
>>>  3 files changed, 14 insertions(+), 8 deletions(-)
>>>
>>> diff --git a/src/gallium/state_trackers/dri/dri2.c 
>>> b/src/gallium/state_trackers/dri/dri2.c
>>> index 28f8078..c6260ba 100644
>>> --- a/src/gallium/state_trackers/dri/dri2.c
>>> +++ b/src/gallium/state_trackers/dri/dri2.c
>>> @@ -979,10 +979,13 @@ dri2_query_image(__DRIimage *image, int attrib, int 
>>> *value)
>>>return GL_TRUE;
>>> case __DRI_IMAGE_ATTRIB_FD:
>>>whandle.type= DRM_API_HANDLE_TYPE_FD;
>>> -  image->texture->screen->resource_get_handle(image->texture->screen,
>>> - image->texture, &whandle, usage);
>>> -  *value = whandle.handle;
>>> -  return GL_TRUE;
>>> +  if 
>>> (image->texture->screen->resource_get_handle(image->texture->screen,
>>> + image->texture, &whandle, usage)) {
>>> + *value = whandle.handle;
>>> + return GL_TRUE;
>>> +  } else {
>>> + return GL_FALSE;
>>> +  }
>>> case __DRI_IMAGE_ATTRIB_FORMAT:
>>>*value = image->dri_format;
>>>return GL_TRUE;
>>> diff --git a/src/gbm/backends/dri/gbm_dri.c b/src/gbm/backends/dri/gbm_dri.c
>>> index c3626e3..54b293a 100644
>>> --- a/src/gbm/backends/dri/gbm_dri.c
>>> +++ b/src/gbm/backends/dri/gbm_dri.c
>>> @@ -589,9 +589,11 @@ gbm_dri_bo_get_fd(struct gbm_bo *_bo)
>>> if (bo->image == NULL)
>>>return -1;
>>>
>>> -   dri->image->queryImage(bo->image, __DRI_IMAGE_ATTRIB_FD, &fd);
>>> -
>>> -   return fd;
>>> +   if (dri->image->queryImage(bo->image, __DRI_IMAGE_ATTRIB_FD, &fd)) {
>>> +  return fd;
>>> +   } else {
>>> +  return -1;
>>> +   }
>>>  }
>>>
>>>  static void
>>> diff --git a/src/gbm/main/gbm.c b/src/gbm/main/gbm.c
>>> index 95b4c2c..c3a2ec33 100644
>>> --- a/src/gbm/main/gbm.c
>>> +++ b/src/gbm/main/gbm.c
>>> @@ -242,7 +242,8 @@ gbm_bo_get_handle(struct gbm_bo *bo)
>>>   * descriptor.
>>>
>>>   * \param bo The buffer object
>>> - * \return Returns a file descriptor referring  to the underlying buffer
>>> + * \return Returns a file descriptor referring to the underlying buffer or 
>>> -1
>>> + * if an error occurs.
>>>   */
>>>  GBM_EXPORT int
>>>  gbm_bo_get_fd(struct gbm_bo *bo)
>>> --
>>> 2.7.4
___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev


Re: [Mesa-dev] [PATCH 1/2] gbm/dri2: propagate errors when creating a DMA-BUF fd

2016-09-14 Thread Nicholas Bishop
Thanks for review. Could someone with commit access push this for me?

On Wed, Sep 14, 2016 at 8:48 AM, Eric Engestrom
 wrote:
> On Thu, Sep 08, 2016 at 03:55:02PM -0400, Nicholas Bishop wrote:
>> Changed dri2_query_image to check the return value of
>> resource_get_handle and return GL_FALSE if an error occurs. Similarly
>> changed gbm_dri_bo_get_fd to check the return value of queryImage and
>> return -1 (an invalid file descriptor) if an error occurs.
>>
>> Updated the comment for gbm_bo_get_fd to say that -1 is returned if
>> an error occurs.
>>
>> For reference this is an example callstack that should propagate the
>> error back to the user:
>>
>> i915_drm_buffer_get_handle
>> i915_texture_get_handle
>> u_resource_get_handle_vtbl
>> dri2_query_image
>> gbm_dri_bo_get_fd
>> gbm_bo_get_fd
>>
>> Signed-off-by: Nicholas Bishop 
>
> Looks good to me
> Reviewed-by: Eric Engestrom 
>
>> ---
>>  src/gallium/state_trackers/dri/dri2.c | 11 +++
>>  src/gbm/backends/dri/gbm_dri.c|  8 +---
>>  src/gbm/main/gbm.c|  3 ++-
>>  3 files changed, 14 insertions(+), 8 deletions(-)
>>
>> diff --git a/src/gallium/state_trackers/dri/dri2.c 
>> b/src/gallium/state_trackers/dri/dri2.c
>> index 28f8078..c6260ba 100644
>> --- a/src/gallium/state_trackers/dri/dri2.c
>> +++ b/src/gallium/state_trackers/dri/dri2.c
>> @@ -979,10 +979,13 @@ dri2_query_image(__DRIimage *image, int attrib, int 
>> *value)
>>return GL_TRUE;
>> case __DRI_IMAGE_ATTRIB_FD:
>>whandle.type= DRM_API_HANDLE_TYPE_FD;
>> -  image->texture->screen->resource_get_handle(image->texture->screen,
>> - image->texture, &whandle, usage);
>> -  *value = whandle.handle;
>> -  return GL_TRUE;
>> +  if 
>> (image->texture->screen->resource_get_handle(image->texture->screen,
>> + image->texture, &whandle, usage)) {
>> + *value = whandle.handle;
>> + return GL_TRUE;
>> +  } else {
>> + return GL_FALSE;
>> +  }
>> case __DRI_IMAGE_ATTRIB_FORMAT:
>>*value = image->dri_format;
>>return GL_TRUE;
>> diff --git a/src/gbm/backends/dri/gbm_dri.c b/src/gbm/backends/dri/gbm_dri.c
>> index c3626e3..54b293a 100644
>> --- a/src/gbm/backends/dri/gbm_dri.c
>> +++ b/src/gbm/backends/dri/gbm_dri.c
>> @@ -589,9 +589,11 @@ gbm_dri_bo_get_fd(struct gbm_bo *_bo)
>> if (bo->image == NULL)
>>return -1;
>>
>> -   dri->image->queryImage(bo->image, __DRI_IMAGE_ATTRIB_FD, &fd);
>> -
>> -   return fd;
>> +   if (dri->image->queryImage(bo->image, __DRI_IMAGE_ATTRIB_FD, &fd)) {
>> +  return fd;
>> +   } else {
>> +  return -1;
>> +   }
>>  }
>>
>>  static void
>> diff --git a/src/gbm/main/gbm.c b/src/gbm/main/gbm.c
>> index 95b4c2c..c3a2ec33 100644
>> --- a/src/gbm/main/gbm.c
>> +++ b/src/gbm/main/gbm.c
>> @@ -242,7 +242,8 @@ gbm_bo_get_handle(struct gbm_bo *bo)
>>   * descriptor.
>>
>>   * \param bo The buffer object
>> - * \return Returns a file descriptor referring  to the underlying buffer
>> + * \return Returns a file descriptor referring to the underlying buffer or 
>> -1
>> + * if an error occurs.
>>   */
>>  GBM_EXPORT int
>>  gbm_bo_get_fd(struct gbm_bo *bo)
>> --
>> 2.7.4
___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev


Re: [Mesa-dev] [PATCH 1/2] gbm/dri2: propagate errors when creating a DMA-BUF fd

2016-09-14 Thread Eric Engestrom
On Thu, Sep 08, 2016 at 03:55:02PM -0400, Nicholas Bishop wrote:
> Changed dri2_query_image to check the return value of
> resource_get_handle and return GL_FALSE if an error occurs. Similarly
> changed gbm_dri_bo_get_fd to check the return value of queryImage and
> return -1 (an invalid file descriptor) if an error occurs.
> 
> Updated the comment for gbm_bo_get_fd to say that -1 is returned if
> an error occurs.
> 
> For reference this is an example callstack that should propagate the
> error back to the user:
> 
> i915_drm_buffer_get_handle
> i915_texture_get_handle
> u_resource_get_handle_vtbl
> dri2_query_image
> gbm_dri_bo_get_fd
> gbm_bo_get_fd
> 
> Signed-off-by: Nicholas Bishop 

Looks good to me
Reviewed-by: Eric Engestrom 

> ---
>  src/gallium/state_trackers/dri/dri2.c | 11 +++
>  src/gbm/backends/dri/gbm_dri.c|  8 +---
>  src/gbm/main/gbm.c|  3 ++-
>  3 files changed, 14 insertions(+), 8 deletions(-)
> 
> diff --git a/src/gallium/state_trackers/dri/dri2.c 
> b/src/gallium/state_trackers/dri/dri2.c
> index 28f8078..c6260ba 100644
> --- a/src/gallium/state_trackers/dri/dri2.c
> +++ b/src/gallium/state_trackers/dri/dri2.c
> @@ -979,10 +979,13 @@ dri2_query_image(__DRIimage *image, int attrib, int 
> *value)
>return GL_TRUE;
> case __DRI_IMAGE_ATTRIB_FD:
>whandle.type= DRM_API_HANDLE_TYPE_FD;
> -  image->texture->screen->resource_get_handle(image->texture->screen,
> - image->texture, &whandle, usage);
> -  *value = whandle.handle;
> -  return GL_TRUE;
> +  if (image->texture->screen->resource_get_handle(image->texture->screen,
> + image->texture, &whandle, usage)) {
> + *value = whandle.handle;
> + return GL_TRUE;
> +  } else {
> + return GL_FALSE;
> +  }
> case __DRI_IMAGE_ATTRIB_FORMAT:
>*value = image->dri_format;
>return GL_TRUE;
> diff --git a/src/gbm/backends/dri/gbm_dri.c b/src/gbm/backends/dri/gbm_dri.c
> index c3626e3..54b293a 100644
> --- a/src/gbm/backends/dri/gbm_dri.c
> +++ b/src/gbm/backends/dri/gbm_dri.c
> @@ -589,9 +589,11 @@ gbm_dri_bo_get_fd(struct gbm_bo *_bo)
> if (bo->image == NULL)
>return -1;
>  
> -   dri->image->queryImage(bo->image, __DRI_IMAGE_ATTRIB_FD, &fd);
> -
> -   return fd;
> +   if (dri->image->queryImage(bo->image, __DRI_IMAGE_ATTRIB_FD, &fd)) {
> +  return fd;
> +   } else {
> +  return -1;
> +   }
>  }
>  
>  static void
> diff --git a/src/gbm/main/gbm.c b/src/gbm/main/gbm.c
> index 95b4c2c..c3a2ec33 100644
> --- a/src/gbm/main/gbm.c
> +++ b/src/gbm/main/gbm.c
> @@ -242,7 +242,8 @@ gbm_bo_get_handle(struct gbm_bo *bo)
>   * descriptor.
>  
>   * \param bo The buffer object
> - * \return Returns a file descriptor referring  to the underlying buffer
> + * \return Returns a file descriptor referring to the underlying buffer or -1
> + * if an error occurs.
>   */
>  GBM_EXPORT int
>  gbm_bo_get_fd(struct gbm_bo *bo)
> -- 
> 2.7.4
___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev