aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'freedreno/freedreno_device.c')
-rw-r--r--freedreno/freedreno_device.c11
1 files changed, 4 insertions, 7 deletions
diff --git a/freedreno/freedreno_device.c b/freedreno/freedreno_device.c
index fcbf1402..0b42561a 100644
--- a/freedreno/freedreno_device.c
+++ b/freedreno/freedreno_device.c
@@ -26,10 +26,6 @@
26 * Rob Clark <robclark@freedesktop.org> 26 * Rob Clark <robclark@freedesktop.org>
27 */ 27 */
28 28
29#ifdef HAVE_CONFIG_H
30# include <config.h>
31#endif
32
33#include <sys/types.h> 29#include <sys/types.h>
34#include <sys/stat.h> 30#include <sys/stat.h>
35#include <unistd.h> 31#include <unistd.h>
@@ -65,7 +61,7 @@ struct fd_device * fd_device_new(int fd)
65 61
66 dev = msm_device_new(fd); 62 dev = msm_device_new(fd);
67 dev->version = version->version_minor; 63 dev->version = version->version_minor;
68#ifdef HAVE_FREEDRENO_KGSL 64#if HAVE_FREEDRENO_KGSL
69 } else if (!strcmp(version->name, "kgsl")) { 65 } else if (!strcmp(version->name, "kgsl")) {
70 DEBUG_MSG("kgsl DRM device"); 66 DEBUG_MSG("kgsl DRM device");
71 dev = kgsl_device_new(fd); 67 dev = kgsl_device_new(fd);
@@ -112,12 +108,13 @@ struct fd_device * fd_device_ref(struct fd_device *dev)
112 108
113static void fd_device_del_impl(struct fd_device *dev) 109static void fd_device_del_impl(struct fd_device *dev)
114{ 110{
111 int close_fd = dev->closefd ? dev->fd : -1;
115 fd_bo_cache_cleanup(&dev->bo_cache, 0); 112 fd_bo_cache_cleanup(&dev->bo_cache, 0);
116 drmHashDestroy(dev->handle_table); 113 drmHashDestroy(dev->handle_table);
117 drmHashDestroy(dev->name_table); 114 drmHashDestroy(dev->name_table);
118 if (dev->closefd)
119 close(dev->fd);
120 dev->funcs->destroy(dev); 115 dev->funcs->destroy(dev);
116 if (close_fd >= 0)
117 close(close_fd);
121} 118}
122 119
123drm_private void fd_device_del_locked(struct fd_device *dev) 120drm_private void fd_device_del_locked(struct fd_device *dev)