Commit 03ac0642 authored by Chris Wilson's avatar Chris Wilson

drm/i915: Wrap drm_gem_object_lookup in i915_gem_object_lookup

For symmetry with a forthcoming i915_gem_object_get() and
i915_gem_object_put().
Signed-off-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
Link: http://patchwork.freedesktop.org/patch/msgid/1469005202-9659-4-git-send-email-chris@chris-wilson.co.ukReviewed-by: default avatarDave Gordon <david.s.gordon@intel.com>
Link: http://patchwork.freedesktop.org/patch/msgid/1469017917-15134-3-git-send-email-chris@chris-wilson.co.uk
parent 9a6feaf0
...@@ -2286,7 +2286,25 @@ struct drm_i915_gem_object { ...@@ -2286,7 +2286,25 @@ struct drm_i915_gem_object {
} userptr; } userptr;
}; };
}; };
#define to_intel_bo(x) container_of(x, struct drm_i915_gem_object, base)
static inline struct drm_i915_gem_object *
to_intel_bo(struct drm_gem_object *gem)
{
/* Assert that to_intel_bo(NULL) == NULL */
BUILD_BUG_ON(offsetof(struct drm_i915_gem_object, base));
return container_of(gem, struct drm_i915_gem_object, base);
}
static inline struct drm_i915_gem_object *
i915_gem_object_lookup(struct drm_file *file, u32 handle)
{
return to_intel_bo(drm_gem_object_lookup(file, handle));
}
__deprecated
extern struct drm_gem_object *
drm_gem_object_lookup(struct drm_file *file, u32 handle);
static inline bool static inline bool
i915_gem_object_has_struct_page(const struct drm_i915_gem_object *obj) i915_gem_object_has_struct_page(const struct drm_i915_gem_object *obj)
......
...@@ -864,8 +864,8 @@ i915_gem_pread_ioctl(struct drm_device *dev, void *data, ...@@ -864,8 +864,8 @@ i915_gem_pread_ioctl(struct drm_device *dev, void *data,
if (ret) if (ret)
return ret; return ret;
obj = to_intel_bo(drm_gem_object_lookup(file, args->handle)); obj = i915_gem_object_lookup(file, args->handle);
if (&obj->base == NULL) { if (!obj) {
ret = -ENOENT; ret = -ENOENT;
goto unlock; goto unlock;
} }
...@@ -1280,8 +1280,8 @@ i915_gem_pwrite_ioctl(struct drm_device *dev, void *data, ...@@ -1280,8 +1280,8 @@ i915_gem_pwrite_ioctl(struct drm_device *dev, void *data,
if (ret) if (ret)
goto put_rpm; goto put_rpm;
obj = to_intel_bo(drm_gem_object_lookup(file, args->handle)); obj = i915_gem_object_lookup(file, args->handle);
if (&obj->base == NULL) { if (!obj) {
ret = -ENOENT; ret = -ENOENT;
goto unlock; goto unlock;
} }
...@@ -1497,8 +1497,8 @@ i915_gem_set_domain_ioctl(struct drm_device *dev, void *data, ...@@ -1497,8 +1497,8 @@ i915_gem_set_domain_ioctl(struct drm_device *dev, void *data,
if (ret) if (ret)
return ret; return ret;
obj = to_intel_bo(drm_gem_object_lookup(file, args->handle)); obj = i915_gem_object_lookup(file, args->handle);
if (&obj->base == NULL) { if (!obj) {
ret = -ENOENT; ret = -ENOENT;
goto unlock; goto unlock;
} }
...@@ -1546,8 +1546,8 @@ i915_gem_sw_finish_ioctl(struct drm_device *dev, void *data, ...@@ -1546,8 +1546,8 @@ i915_gem_sw_finish_ioctl(struct drm_device *dev, void *data,
if (ret) if (ret)
return ret; return ret;
obj = to_intel_bo(drm_gem_object_lookup(file, args->handle)); obj = i915_gem_object_lookup(file, args->handle);
if (&obj->base == NULL) { if (!obj) {
ret = -ENOENT; ret = -ENOENT;
goto unlock; goto unlock;
} }
...@@ -1587,7 +1587,7 @@ i915_gem_mmap_ioctl(struct drm_device *dev, void *data, ...@@ -1587,7 +1587,7 @@ i915_gem_mmap_ioctl(struct drm_device *dev, void *data,
struct drm_file *file) struct drm_file *file)
{ {
struct drm_i915_gem_mmap *args = data; struct drm_i915_gem_mmap *args = data;
struct drm_gem_object *obj; struct drm_i915_gem_object *obj;
unsigned long addr; unsigned long addr;
if (args->flags & ~(I915_MMAP_WC)) if (args->flags & ~(I915_MMAP_WC))
...@@ -1596,19 +1596,19 @@ i915_gem_mmap_ioctl(struct drm_device *dev, void *data, ...@@ -1596,19 +1596,19 @@ i915_gem_mmap_ioctl(struct drm_device *dev, void *data,
if (args->flags & I915_MMAP_WC && !boot_cpu_has(X86_FEATURE_PAT)) if (args->flags & I915_MMAP_WC && !boot_cpu_has(X86_FEATURE_PAT))
return -ENODEV; return -ENODEV;
obj = drm_gem_object_lookup(file, args->handle); obj = i915_gem_object_lookup(file, args->handle);
if (obj == NULL) if (!obj)
return -ENOENT; return -ENOENT;
/* prime objects have no backing filp to GEM mmap /* prime objects have no backing filp to GEM mmap
* pages from. * pages from.
*/ */
if (!obj->filp) { if (!obj->base.filp) {
drm_gem_object_unreference_unlocked(obj); drm_gem_object_unreference_unlocked(&obj->base);
return -EINVAL; return -EINVAL;
} }
addr = vm_mmap(obj->filp, 0, args->size, addr = vm_mmap(obj->base.filp, 0, args->size,
PROT_READ | PROT_WRITE, MAP_SHARED, PROT_READ | PROT_WRITE, MAP_SHARED,
args->offset); args->offset);
if (args->flags & I915_MMAP_WC) { if (args->flags & I915_MMAP_WC) {
...@@ -1616,7 +1616,7 @@ i915_gem_mmap_ioctl(struct drm_device *dev, void *data, ...@@ -1616,7 +1616,7 @@ i915_gem_mmap_ioctl(struct drm_device *dev, void *data,
struct vm_area_struct *vma; struct vm_area_struct *vma;
if (down_write_killable(&mm->mmap_sem)) { if (down_write_killable(&mm->mmap_sem)) {
drm_gem_object_unreference_unlocked(obj); drm_gem_object_unreference_unlocked(&obj->base);
return -EINTR; return -EINTR;
} }
vma = find_vma(mm, addr); vma = find_vma(mm, addr);
...@@ -1628,9 +1628,9 @@ i915_gem_mmap_ioctl(struct drm_device *dev, void *data, ...@@ -1628,9 +1628,9 @@ i915_gem_mmap_ioctl(struct drm_device *dev, void *data,
up_write(&mm->mmap_sem); up_write(&mm->mmap_sem);
/* This may race, but that's ok, it only gets set */ /* This may race, but that's ok, it only gets set */
WRITE_ONCE(to_intel_bo(obj)->has_wc_mmap, true); WRITE_ONCE(obj->has_wc_mmap, true);
} }
drm_gem_object_unreference_unlocked(obj); drm_gem_object_unreference_unlocked(&obj->base);
if (IS_ERR((void *)addr)) if (IS_ERR((void *)addr))
return addr; return addr;
...@@ -1968,8 +1968,8 @@ i915_gem_mmap_gtt(struct drm_file *file, ...@@ -1968,8 +1968,8 @@ i915_gem_mmap_gtt(struct drm_file *file,
if (ret) if (ret)
return ret; return ret;
obj = to_intel_bo(drm_gem_object_lookup(file, handle)); obj = i915_gem_object_lookup(file, handle);
if (&obj->base == NULL) { if (!obj) {
ret = -ENOENT; ret = -ENOENT;
goto unlock; goto unlock;
} }
...@@ -2792,8 +2792,8 @@ i915_gem_wait_ioctl(struct drm_device *dev, void *data, struct drm_file *file) ...@@ -2792,8 +2792,8 @@ i915_gem_wait_ioctl(struct drm_device *dev, void *data, struct drm_file *file)
if (ret) if (ret)
return ret; return ret;
obj = to_intel_bo(drm_gem_object_lookup(file, args->bo_handle)); obj = i915_gem_object_lookup(file, args->bo_handle);
if (&obj->base == NULL) { if (!obj) {
mutex_unlock(&dev->struct_mutex); mutex_unlock(&dev->struct_mutex);
return -ENOENT; return -ENOENT;
} }
...@@ -3596,8 +3596,8 @@ int i915_gem_get_caching_ioctl(struct drm_device *dev, void *data, ...@@ -3596,8 +3596,8 @@ int i915_gem_get_caching_ioctl(struct drm_device *dev, void *data,
struct drm_i915_gem_caching *args = data; struct drm_i915_gem_caching *args = data;
struct drm_i915_gem_object *obj; struct drm_i915_gem_object *obj;
obj = to_intel_bo(drm_gem_object_lookup(file, args->handle)); obj = i915_gem_object_lookup(file, args->handle);
if (&obj->base == NULL) if (!obj)
return -ENOENT; return -ENOENT;
switch (obj->cache_level) { switch (obj->cache_level) {
...@@ -3657,8 +3657,8 @@ int i915_gem_set_caching_ioctl(struct drm_device *dev, void *data, ...@@ -3657,8 +3657,8 @@ int i915_gem_set_caching_ioctl(struct drm_device *dev, void *data,
if (ret) if (ret)
goto rpm_put; goto rpm_put;
obj = to_intel_bo(drm_gem_object_lookup(file, args->handle)); obj = i915_gem_object_lookup(file, args->handle);
if (&obj->base == NULL) { if (!obj) {
ret = -ENOENT; ret = -ENOENT;
goto unlock; goto unlock;
} }
...@@ -4026,8 +4026,8 @@ i915_gem_busy_ioctl(struct drm_device *dev, void *data, ...@@ -4026,8 +4026,8 @@ i915_gem_busy_ioctl(struct drm_device *dev, void *data,
if (ret) if (ret)
return ret; return ret;
obj = to_intel_bo(drm_gem_object_lookup(file, args->handle)); obj = i915_gem_object_lookup(file, args->handle);
if (&obj->base == NULL) { if (!obj) {
ret = -ENOENT; ret = -ENOENT;
goto unlock; goto unlock;
} }
...@@ -4091,8 +4091,8 @@ i915_gem_madvise_ioctl(struct drm_device *dev, void *data, ...@@ -4091,8 +4091,8 @@ i915_gem_madvise_ioctl(struct drm_device *dev, void *data,
if (ret) if (ret)
return ret; return ret;
obj = to_intel_bo(drm_gem_object_lookup(file_priv, args->handle)); obj = i915_gem_object_lookup(file_priv, args->handle);
if (&obj->base == NULL) { if (!obj) {
ret = -ENOENT; ret = -ENOENT;
goto unlock; goto unlock;
} }
......
...@@ -166,8 +166,8 @@ i915_gem_set_tiling(struct drm_device *dev, void *data, ...@@ -166,8 +166,8 @@ i915_gem_set_tiling(struct drm_device *dev, void *data,
struct drm_i915_gem_object *obj; struct drm_i915_gem_object *obj;
int ret = 0; int ret = 0;
obj = to_intel_bo(drm_gem_object_lookup(file, args->handle)); obj = i915_gem_object_lookup(file, args->handle);
if (&obj->base == NULL) if (!obj)
return -ENOENT; return -ENOENT;
if (!i915_tiling_ok(dev, if (!i915_tiling_ok(dev,
...@@ -297,8 +297,8 @@ i915_gem_get_tiling(struct drm_device *dev, void *data, ...@@ -297,8 +297,8 @@ i915_gem_get_tiling(struct drm_device *dev, void *data,
struct drm_i915_private *dev_priv = to_i915(dev); struct drm_i915_private *dev_priv = to_i915(dev);
struct drm_i915_gem_object *obj; struct drm_i915_gem_object *obj;
obj = to_intel_bo(drm_gem_object_lookup(file, args->handle)); obj = i915_gem_object_lookup(file, args->handle);
if (&obj->base == NULL) if (!obj)
return -ENOENT; return -ENOENT;
mutex_lock(&dev->struct_mutex); mutex_lock(&dev->struct_mutex);
......
...@@ -15089,8 +15089,8 @@ intel_user_framebuffer_create(struct drm_device *dev, ...@@ -15089,8 +15089,8 @@ intel_user_framebuffer_create(struct drm_device *dev,
struct drm_i915_gem_object *obj; struct drm_i915_gem_object *obj;
struct drm_mode_fb_cmd2 mode_cmd = *user_mode_cmd; struct drm_mode_fb_cmd2 mode_cmd = *user_mode_cmd;
obj = to_intel_bo(drm_gem_object_lookup(filp, mode_cmd.handles[0])); obj = i915_gem_object_lookup(filp, mode_cmd.handles[0]);
if (&obj->base == NULL) if (!obj)
return ERR_PTR(-ENOENT); return ERR_PTR(-ENOENT);
fb = intel_framebuffer_create(dev, &mode_cmd, obj); fb = intel_framebuffer_create(dev, &mode_cmd, obj);
......
...@@ -1122,9 +1122,8 @@ int intel_overlay_put_image_ioctl(struct drm_device *dev, void *data, ...@@ -1122,9 +1122,8 @@ int intel_overlay_put_image_ioctl(struct drm_device *dev, void *data,
} }
crtc = to_intel_crtc(drmmode_crtc); crtc = to_intel_crtc(drmmode_crtc);
new_bo = to_intel_bo(drm_gem_object_lookup(file_priv, new_bo = i915_gem_object_lookup(file_priv, put_image_rec->bo_handle);
put_image_rec->bo_handle)); if (!new_bo) {
if (&new_bo->base == NULL) {
ret = -ENOENT; ret = -ENOENT;
goto out_free; goto out_free;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment