On Fri, 14 Sep 2012 16:37:53 -0400, Kristian Høgsberg krh@bitplanet.net wrote:
It's the same situation as flink and we need take the same pre-cautions.
intel/intel_bufmgr_gem.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/intel/intel_bufmgr_gem.c b/intel/intel_bufmgr_gem.c index 3bcc849..92c0444 100644 --- a/intel/intel_bufmgr_gem.c +++ b/intel/intel_bufmgr_gem.c @@ -2472,8 +2472,14 @@ drm_intel_bo_gem_export_to_prime(drm_intel_bo *bo, int *prime_fd) { drm_intel_bufmgr_gem *bufmgr_gem = (drm_intel_bufmgr_gem *) bo->bufmgr; drm_intel_bo_gem *bo_gem = (drm_intel_bo_gem *) bo;
- int ret;
- return drmPrimeHandleToFD(bufmgr_gem->fd, bo_gem->gem_handle, DRM_CLOEXEC, prime_fd);
- ret = drmPrimeHandleToFD(bufmgr_gem->fd, bo_gem->gem_handle,
DRM_CLOEXEC, prime_fd);
- if (ret == 0)
bo_gem->reusable = false;
Now that you mention it... To be consistent with libdrm_intel, we should return -errno on error; so rephrasing this as if (ret) return -errno;
bo_gem->reusable = false; return 0;
would work better. -Chris