diff options
Diffstat (limited to 'drivers/gpu/drm/omapdrm/omap_gem.c')
-rw-r--r-- | drivers/gpu/drm/omapdrm/omap_gem.c | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/drivers/gpu/drm/omapdrm/omap_gem.c b/drivers/gpu/drm/omapdrm/omap_gem.c index cebbdf081e5d..4ba5d035c590 100644 --- a/drivers/gpu/drm/omapdrm/omap_gem.c +++ b/drivers/gpu/drm/omapdrm/omap_gem.c | |||
@@ -1000,6 +1000,7 @@ int omap_gem_resume(struct drm_device *dev) | |||
1000 | struct omap_gem_object *omap_obj; | 1000 | struct omap_gem_object *omap_obj; |
1001 | int ret = 0; | 1001 | int ret = 0; |
1002 | 1002 | ||
1003 | mutex_lock(&priv->list_lock); | ||
1003 | list_for_each_entry(omap_obj, &priv->obj_list, mm_list) { | 1004 | list_for_each_entry(omap_obj, &priv->obj_list, mm_list) { |
1004 | if (omap_obj->block) { | 1005 | if (omap_obj->block) { |
1005 | struct drm_gem_object *obj = &omap_obj->base; | 1006 | struct drm_gem_object *obj = &omap_obj->base; |
@@ -1011,12 +1012,14 @@ int omap_gem_resume(struct drm_device *dev) | |||
1011 | omap_obj->roll, true); | 1012 | omap_obj->roll, true); |
1012 | if (ret) { | 1013 | if (ret) { |
1013 | dev_err(dev->dev, "could not repin: %d\n", ret); | 1014 | dev_err(dev->dev, "could not repin: %d\n", ret); |
1014 | return ret; | 1015 | goto done; |
1015 | } | 1016 | } |
1016 | } | 1017 | } |
1017 | } | 1018 | } |
1018 | 1019 | ||
1019 | return 0; | 1020 | done: |
1021 | mutex_unlock(&priv->list_lock); | ||
1022 | return ret; | ||
1020 | } | 1023 | } |
1021 | #endif | 1024 | #endif |
1022 | 1025 | ||
@@ -1086,9 +1089,9 @@ void omap_gem_free_object(struct drm_gem_object *obj) | |||
1086 | 1089 | ||
1087 | omap_gem_evict(obj); | 1090 | omap_gem_evict(obj); |
1088 | 1091 | ||
1089 | spin_lock(&priv->list_lock); | 1092 | mutex_lock(&priv->list_lock); |
1090 | list_del(&omap_obj->mm_list); | 1093 | list_del(&omap_obj->mm_list); |
1091 | spin_unlock(&priv->list_lock); | 1094 | mutex_unlock(&priv->list_lock); |
1092 | 1095 | ||
1093 | /* | 1096 | /* |
1094 | * We own the sole reference to the object at this point, but to keep | 1097 | * We own the sole reference to the object at this point, but to keep |
@@ -1218,9 +1221,9 @@ struct drm_gem_object *omap_gem_new(struct drm_device *dev, | |||
1218 | goto err_release; | 1221 | goto err_release; |
1219 | } | 1222 | } |
1220 | 1223 | ||
1221 | spin_lock(&priv->list_lock); | 1224 | mutex_lock(&priv->list_lock); |
1222 | list_add(&omap_obj->mm_list, &priv->obj_list); | 1225 | list_add(&omap_obj->mm_list, &priv->obj_list); |
1223 | spin_unlock(&priv->list_lock); | 1226 | mutex_unlock(&priv->list_lock); |
1224 | 1227 | ||
1225 | return obj; | 1228 | return obj; |
1226 | 1229 | ||