diff options
Diffstat (limited to 'sys/dev/pci/drm/drm_gem.c')
| -rw-r--r-- | sys/dev/pci/drm/drm_gem.c | 9 |
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); |
