mirror of
https://gitlab.freedesktop.org/mesa/drm.git
synced 2025-12-24 14:50:11 +01:00
Fix missing member settings in obj/obj_priv, and some error paths.
This commit is contained in:
parent
7d5f783eca
commit
3f641b56c7
2 changed files with 8 additions and 0 deletions
|
|
@ -80,6 +80,7 @@ drm_gem_object_alloc(struct drm_device *dev, size_t size)
|
|||
}
|
||||
|
||||
obj->refcount = 1;
|
||||
obj->size = size;
|
||||
|
||||
if (dev->driver->gem_init_object != NULL &&
|
||||
dev->driver->gem_init_object(dev, obj) != 0) {
|
||||
|
|
|
|||
|
|
@ -106,6 +106,9 @@ i915_gem_object_bind_to_gtt(struct drm_device *dev, struct drm_gem_object *obj)
|
|||
obj_priv->gtt_space = drm_memrange_get_block(free_space,
|
||||
obj->size,
|
||||
PAGE_SIZE);
|
||||
obj_priv->gtt_offset = obj_priv->gtt_space->start;
|
||||
|
||||
DRM_INFO("Binding object of size %d at 0x%08x\n", obj->size, obj_priv->gtt_offset);
|
||||
|
||||
/* Get the list of pages out of our struct file. They'll be pinned
|
||||
* at this point until we release them.
|
||||
|
|
@ -120,6 +123,8 @@ i915_gem_object_bind_to_gtt(struct drm_device *dev, struct drm_gem_object *obj)
|
|||
|
||||
if (obj_priv->page_list[i] == NULL) {
|
||||
i915_gem_object_free_page_list(dev, obj);
|
||||
drm_memrange_put_block(obj_priv->gtt_space);
|
||||
obj_priv->gtt_space = NULL;
|
||||
return -ENOMEM;
|
||||
}
|
||||
}
|
||||
|
|
@ -133,6 +138,8 @@ i915_gem_object_bind_to_gtt(struct drm_device *dev, struct drm_gem_object *obj)
|
|||
obj_priv->gtt_offset);
|
||||
if (obj_priv->agp_mem == NULL) {
|
||||
i915_gem_object_free_page_list(dev, obj);
|
||||
drm_memrange_put_block(obj_priv->gtt_space);
|
||||
obj_priv->gtt_space = NULL;
|
||||
return -ENOMEM;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue