aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/drm_gem.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/drm/drm_gem.c')
-rw-r--r--drivers/gpu/drm/drm_gem.c20
1 files changed, 8 insertions, 12 deletions
diff --git a/drivers/gpu/drm/drm_gem.c b/drivers/gpu/drm/drm_gem.c
index 603f256152ef..1ad9e7ec0119 100644
--- a/drivers/gpu/drm/drm_gem.c
+++ b/drivers/gpu/drm/drm_gem.c
@@ -132,16 +132,14 @@ drm_gem_destroy(struct drm_device *dev)
132int drm_gem_object_init(struct drm_device *dev, 132int drm_gem_object_init(struct drm_device *dev,
133 struct drm_gem_object *obj, size_t size) 133 struct drm_gem_object *obj, size_t size)
134{ 134{
135 BUG_ON((size & (PAGE_SIZE - 1)) != 0); 135 struct file *filp;
136 136
137 obj->dev = dev; 137 filp = shmem_file_setup("drm mm object", size, VM_NORESERVE);
138 obj->filp = shmem_file_setup("drm mm object", size, VM_NORESERVE); 138 if (IS_ERR(filp))
139 if (IS_ERR(obj->filp)) 139 return PTR_ERR(filp);
140 return PTR_ERR(obj->filp);
141 140
142 kref_init(&obj->refcount); 141 drm_gem_private_object_init(dev, obj, size);
143 atomic_set(&obj->handle_count, 0); 142 obj->filp = filp;
144 obj->size = size;
145 143
146 return 0; 144 return 0;
147} 145}
@@ -152,8 +150,8 @@ EXPORT_SYMBOL(drm_gem_object_init);
152 * no GEM provided backing store. Instead the caller is responsible for 150 * no GEM provided backing store. Instead the caller is responsible for
153 * backing the object and handling it. 151 * backing the object and handling it.
154 */ 152 */
155int drm_gem_private_object_init(struct drm_device *dev, 153void drm_gem_private_object_init(struct drm_device *dev,
156 struct drm_gem_object *obj, size_t size) 154 struct drm_gem_object *obj, size_t size)
157{ 155{
158 BUG_ON((size & (PAGE_SIZE - 1)) != 0); 156 BUG_ON((size & (PAGE_SIZE - 1)) != 0);
159 157
@@ -163,8 +161,6 @@ int drm_gem_private_object_init(struct drm_device *dev,
163 kref_init(&obj->refcount); 161 kref_init(&obj->refcount);
164 atomic_set(&obj->handle_count, 0); 162 atomic_set(&obj->handle_count, 0);
165 obj->size = size; 163 obj->size = size;
166
167 return 0;
168} 164}
169EXPORT_SYMBOL(drm_gem_private_object_init); 165EXPORT_SYMBOL(drm_gem_private_object_init);
170 166