summaryrefslogtreecommitdiffstats
path: root/sys/dev/pci/drm/drm_gem.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/dev/pci/drm/drm_gem.c')
-rw-r--r--sys/dev/pci/drm/drm_gem.c9
1 files changed, 4 insertions, 5 deletions
diff --git a/sys/dev/pci/drm/drm_gem.c b/sys/dev/pci/drm/drm_gem.c
index ecf81f371e3..125b78f885a 100644
--- a/sys/dev/pci/drm/drm_gem.c
+++ b/sys/dev/pci/drm/drm_gem.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: drm_gem.c,v 1.5 2017/09/03 13:28:54 jsg Exp $ */
+/* $OpenBSD: drm_gem.c,v 1.6 2018/06/25 22:29:16 kettenis Exp $ */
/*
* Copyright © 2008 Intel Corporation
*
@@ -28,6 +28,7 @@
#include <dev/pci/drm/drmP.h>
#include <dev/pci/drm/drm_vma_manager.h>
+#include "drm_internal.h"
#include <uvm/uvm.h>
@@ -318,7 +319,6 @@ EXPORT_SYMBOL(drm_gem_private_object_init);
static void
drm_gem_remove_prime_handles(struct drm_gem_object *obj, struct drm_file *filp)
{
-#ifdef __linux__
/*
* Note: obj->dma_buf can't disappear as long as we still hold a
* handle reference in obj->handle_count.
@@ -329,7 +329,6 @@ drm_gem_remove_prime_handles(struct drm_gem_object *obj, struct drm_file *filp)
obj->dma_buf);
}
mutex_unlock(&filp->prime.lock);
-#endif
}
/**
@@ -352,13 +351,11 @@ static void drm_gem_object_handle_free(struct drm_gem_object *obj)
static void drm_gem_object_exported_dma_buf_free(struct drm_gem_object *obj)
{
-#ifdef __linux__
/* Unbreak the reference cycle if we have an exported dma_buf. */
if (obj->dma_buf) {
dma_buf_put(obj->dma_buf);
obj->dma_buf = NULL;
}
-#endif
}
static void
@@ -873,6 +870,8 @@ drm_gem_object_release(struct drm_gem_object *obj)
{
struct drm_device *dev = obj->dev;
+ WARN_ON(obj->dma_buf);
+
if (obj->uao)
uao_detach(obj->uao);