summaryrefslogtreecommitdiff
path: root/linux-core
diff options
context:
space:
mode:
Diffstat (limited to 'linux-core')
-rw-r--r--linux-core/drm_bo.c13
-rw-r--r--linux-core/drm_objects.h1
2 files changed, 10 insertions, 4 deletions
diff --git a/linux-core/drm_bo.c b/linux-core/drm_bo.c
index 89c014e3..cc4743dc 100644
--- a/linux-core/drm_bo.c
+++ b/linux-core/drm_bo.c
@@ -1524,7 +1524,9 @@ EXPORT_SYMBOL(drm_bo_do_validate);
int drm_bo_handle_validate(struct drm_file * file_priv, uint32_t handle,
uint32_t fence_class,
- uint64_t flags, uint64_t mask, uint32_t hint,
+ uint64_t flags, uint64_t mask,
+ uint32_t hint,
+ int use_old_fence_class,
struct drm_bo_info_rep * rep,
struct drm_buffer_object **bo_rep)
{
@@ -1537,10 +1539,12 @@ int drm_bo_handle_validate(struct drm_file * file_priv, uint32_t handle,
bo = drm_lookup_buffer_object(file_priv, handle, 1);
mutex_unlock(&dev->struct_mutex);
- if (!bo) {
+ if (!bo)
return -EINVAL;
- }
-
+
+ if (use_old_fence_class)
+ fence_class = bo->fence_class;
+
/*
* Only allow creator to change shared buffer mask.
*/
@@ -1780,6 +1784,7 @@ int drm_bo_setstatus_ioctl(struct drm_device *dev,
req->flags,
req->mask,
req->hint | DRM_BO_HINT_DONT_FENCE,
+ 1,
rep, NULL);
if (ret)
diff --git a/linux-core/drm_objects.h b/linux-core/drm_objects.h
index 4d1ec993..f153b84a 100644
--- a/linux-core/drm_objects.h
+++ b/linux-core/drm_objects.h
@@ -510,6 +510,7 @@ extern int drm_bo_init_mm(struct drm_device * dev, unsigned type,
extern int drm_bo_handle_validate(struct drm_file * file_priv, uint32_t handle,
uint32_t fence_class, uint64_t flags,
uint64_t mask, uint32_t hint,
+ int use_old_fence_class,
struct drm_bo_info_rep * rep,
struct drm_buffer_object **bo_rep);
extern struct drm_buffer_object *drm_lookup_buffer_object(struct drm_file * file_priv,