diff options
author | Daniel Vetter <daniel.vetter@ffwll.ch> | 2015-11-23 04:32:34 -0500 |
---|---|---|
committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2015-12-03 10:55:17 -0500 |
commit | 7a6f7133c573f237f2ed51652a947bc02aeeda4d (patch) | |
tree | 31629f0a972e350ecfa1f5f1ebe377d370a67ebf | |
parent | 7cb410cdbdc9b71e2d4f356f2e4cea0b925abb21 (diff) |
drm/armada: use unlocked gem unreferencing
For drm_gem_object_unreference callers are required to hold
dev->struct_mutex, which these paths don't. Enforcing this requirement
has become a bit more strict with
commit ef4c6270bf2867e2f8032e9614d1a8cfc6c71663
Author: Daniel Vetter <daniel.vetter@ffwll.ch>
Date: Thu Oct 15 09:36:25 2015 +0200
drm/gem: Check locking in drm_gem_object_unreference
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
-rw-r--r-- | drivers/gpu/drm/armada/armada_crtc.c | 2 | ||||
-rw-r--r-- | drivers/gpu/drm/armada/armada_gem.c | 4 |
2 files changed, 3 insertions, 3 deletions
diff --git a/drivers/gpu/drm/armada/armada_crtc.c b/drivers/gpu/drm/armada/armada_crtc.c index cebcab560626..7ea35bee7cd5 100644 --- a/drivers/gpu/drm/armada/armada_crtc.c +++ b/drivers/gpu/drm/armada/armada_crtc.c | |||
@@ -972,7 +972,7 @@ static void armada_drm_crtc_destroy(struct drm_crtc *crtc) | |||
972 | struct armada_private *priv = crtc->dev->dev_private; | 972 | struct armada_private *priv = crtc->dev->dev_private; |
973 | 973 | ||
974 | if (dcrtc->cursor_obj) | 974 | if (dcrtc->cursor_obj) |
975 | drm_gem_object_unreference(&dcrtc->cursor_obj->obj); | 975 | drm_gem_object_unreference_unlocked(&dcrtc->cursor_obj->obj); |
976 | 976 | ||
977 | priv->dcrtc[dcrtc->num] = NULL; | 977 | priv->dcrtc[dcrtc->num] = NULL; |
978 | drm_crtc_cleanup(&dcrtc->crtc); | 978 | drm_crtc_cleanup(&dcrtc->crtc); |
diff --git a/drivers/gpu/drm/armada/armada_gem.c b/drivers/gpu/drm/armada/armada_gem.c index 60a688ef81c7..aaf88641bfc5 100644 --- a/drivers/gpu/drm/armada/armada_gem.c +++ b/drivers/gpu/drm/armada/armada_gem.c | |||
@@ -352,13 +352,13 @@ int armada_gem_mmap_ioctl(struct drm_device *dev, void *data, | |||
352 | return -ENOENT; | 352 | return -ENOENT; |
353 | 353 | ||
354 | if (!dobj->obj.filp) { | 354 | if (!dobj->obj.filp) { |
355 | drm_gem_object_unreference(&dobj->obj); | 355 | drm_gem_object_unreference_unlocked(&dobj->obj); |
356 | return -EINVAL; | 356 | return -EINVAL; |
357 | } | 357 | } |
358 | 358 | ||
359 | addr = vm_mmap(dobj->obj.filp, 0, args->size, PROT_READ | PROT_WRITE, | 359 | addr = vm_mmap(dobj->obj.filp, 0, args->size, PROT_READ | PROT_WRITE, |
360 | MAP_SHARED, args->offset); | 360 | MAP_SHARED, args->offset); |
361 | drm_gem_object_unreference(&dobj->obj); | 361 | drm_gem_object_unreference_unlocked(&dobj->obj); |
362 | if (IS_ERR_VALUE(addr)) | 362 | if (IS_ERR_VALUE(addr)) |
363 | return addr; | 363 | return addr; |
364 | 364 | ||