From 72d03bce350dec4306ae1669fd8e9f78f7a14948 Mon Sep 17 00:00:00 2001 From: Jia Meng Date: Wed, 4 Nov 2015 11:50:07 +0800 Subject: [PATCH] drm: close prime fd on destruction of DrmBoData * on cl path, DrmBoData will be created for every incoming v4l2 buffer, and a prime fd will be requested for each; close the fd on destruction is necessary to prevent fd exhaustion. Signed-off-by: Wind Yuan --- xcore/drm_bo_buffer.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/xcore/drm_bo_buffer.cpp b/xcore/drm_bo_buffer.cpp index d8d7fb724..9d2c92ff1 100644 --- a/xcore/drm_bo_buffer.cpp +++ b/xcore/drm_bo_buffer.cpp @@ -40,6 +40,8 @@ DrmBoData::~DrmBoData () unmap (); if (_bo) drm_intel_bo_unreference (_bo); + if (_prime_fd != -1) + close (_prime_fd); } uint8_t * @@ -95,7 +97,7 @@ DrmBoData::get_fd () if (_prime_fd == -1) { if (drm_intel_bo_gem_export_to_prime (_bo, &_prime_fd) < 0) { _prime_fd = -1; - XCAM_LOG_DEBUG ("DrmBoData: failed to obtain prime fd"); + XCAM_LOG_ERROR ("DrmBoData: failed to obtain prime fd: %s", strerror(errno)); } }