aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2016-07-20 08:31:51 -0400
committerChris Wilson <chris@chris-wilson.co.uk>2016-07-20 08:40:10 -0400
commit03ac0642f67a3a888bf82b1042c07d5df2b52a89 (patch)
tree139d14240183812b132d3a747581dbfab7fedfa6
parent9a6feaf0d74f91eeef23d0ee72c5ce69a559b31b (diff)
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: Chris Wilson <chris@chris-wilson.co.uk> Link: http://patchwork.freedesktop.org/patch/msgid/1469005202-9659-4-git-send-email-chris@chris-wilson.co.uk Reviewed-by: Dave Gordon <david.s.gordon@intel.com> Link: http://patchwork.freedesktop.org/patch/msgid/1469017917-15134-3-git-send-email-chris@chris-wilson.co.uk
-rw-r--r--drivers/gpu/drm/i915/i915_drv.h20
-rw-r--r--drivers/gpu/drm/i915/i915_gem.c58
-rw-r--r--drivers/gpu/drm/i915/i915_gem_tiling.c8
-rw-r--r--drivers/gpu/drm/i915/intel_display.c4
-rw-r--r--drivers/gpu/drm/i915/intel_overlay.c5
5 files changed, 56 insertions, 39 deletions
diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
index 2131e7f1e57a..47f244f9c64e 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -2286,7 +2286,25 @@ struct drm_i915_gem_object {
2286 } userptr; 2286 } userptr;
2287 }; 2287 };
2288}; 2288};
2289#define to_intel_bo(x) container_of(x, struct drm_i915_gem_object, base) 2289
2290static inline struct drm_i915_gem_object *
2291to_intel_bo(struct drm_gem_object *gem)
2292{
2293 /* Assert that to_intel_bo(NULL) == NULL */
2294 BUILD_BUG_ON(offsetof(struct drm_i915_gem_object, base));
2295
2296 return container_of(gem, struct drm_i915_gem_object, base);
2297}
2298
2299static inline struct drm_i915_gem_object *
2300i915_gem_object_lookup(struct drm_file *file, u32 handle)
2301{
2302 return to_intel_bo(drm_gem_object_lookup(file, handle));
2303}
2304
2305__deprecated
2306extern struct drm_gem_object *
2307drm_gem_object_lookup(struct drm_file *file, u32 handle);
2290 2308
2291static inline bool 2309static inline bool
2292i915_gem_object_has_struct_page(const struct drm_i915_gem_object *obj) 2310i915_gem_object_has_struct_page(const struct drm_i915_gem_object *obj)
diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
index d825db7b763d..970496419098 100644
--- a/drivers/gpu/drm/i915/i915_gem.c
+++ b/drivers/gpu/drm/i915/i915_gem.c
@@ -864,8 +864,8 @@ i915_gem_pread_ioctl(struct drm_device *dev, void *data,
864 if (ret) 864 if (ret)
865 return ret; 865 return ret;
866 866
867 obj = to_intel_bo(drm_gem_object_lookup(file, args->handle)); 867 obj = i915_gem_object_lookup(file, args->handle);
868 if (&obj->base == NULL) { 868 if (!obj) {
869 ret = -ENOENT; 869 ret = -ENOENT;
870 goto unlock; 870 goto unlock;
871 } 871 }
@@ -1280,8 +1280,8 @@ i915_gem_pwrite_ioctl(struct drm_device *dev, void *data,
1280 if (ret) 1280 if (ret)
1281 goto put_rpm; 1281 goto put_rpm;
1282 1282
1283 obj = to_intel_bo(drm_gem_object_lookup(file, args->handle)); 1283 obj = i915_gem_object_lookup(file, args->handle);
1284 if (&obj->base == NULL) { 1284 if (!obj) {
1285 ret = -ENOENT; 1285 ret = -ENOENT;
1286 goto unlock; 1286 goto unlock;
1287 } 1287 }
@@ -1497,8 +1497,8 @@ i915_gem_set_domain_ioctl(struct drm_device *dev, void *data,
1497 if (ret) 1497 if (ret)
1498 return ret; 1498 return ret;
1499 1499
1500 obj = to_intel_bo(drm_gem_object_lookup(file, args->handle)); 1500 obj = i915_gem_object_lookup(file, args->handle);
1501 if (&obj->base == NULL) { 1501 if (!obj) {
1502 ret = -ENOENT; 1502 ret = -ENOENT;
1503 goto unlock; 1503 goto unlock;
1504 } 1504 }
@@ -1546,8 +1546,8 @@ i915_gem_sw_finish_ioctl(struct drm_device *dev, void *data,
1546 if (ret) 1546 if (ret)
1547 return ret; 1547 return ret;
1548 1548
1549 obj = to_intel_bo(drm_gem_object_lookup(file, args->handle)); 1549 obj = i915_gem_object_lookup(file, args->handle);
1550 if (&obj->base == NULL) { 1550 if (!obj) {
1551 ret = -ENOENT; 1551 ret = -ENOENT;
1552 goto unlock; 1552 goto unlock;
1553 } 1553 }
@@ -1587,7 +1587,7 @@ i915_gem_mmap_ioctl(struct drm_device *dev, void *data,
1587 struct drm_file *file) 1587 struct drm_file *file)
1588{ 1588{
1589 struct drm_i915_gem_mmap *args = data; 1589 struct drm_i915_gem_mmap *args = data;
1590 struct drm_gem_object *obj; 1590 struct drm_i915_gem_object *obj;
1591 unsigned long addr; 1591 unsigned long addr;
1592 1592
1593 if (args->flags & ~(I915_MMAP_WC)) 1593 if (args->flags & ~(I915_MMAP_WC))
@@ -1596,19 +1596,19 @@ i915_gem_mmap_ioctl(struct drm_device *dev, void *data,
1596 if (args->flags & I915_MMAP_WC && !boot_cpu_has(X86_FEATURE_PAT)) 1596 if (args->flags & I915_MMAP_WC && !boot_cpu_has(X86_FEATURE_PAT))
1597 return -ENODEV; 1597 return -ENODEV;
1598 1598
1599 obj = drm_gem_object_lookup(file, args->handle); 1599 obj = i915_gem_object_lookup(file, args->handle);
1600 if (obj == NULL) 1600 if (!obj)
1601 return -ENOENT; 1601 return -ENOENT;
1602 1602
1603 /* prime objects have no backing filp to GEM mmap 1603 /* prime objects have no backing filp to GEM mmap
1604 * pages from. 1604 * pages from.
1605 */ 1605 */
1606 if (!obj->filp) { 1606 if (!obj->base.filp) {
1607 drm_gem_object_unreference_unlocked(obj); 1607 drm_gem_object_unreference_unlocked(&obj->base);
1608 return -EINVAL; 1608 return -EINVAL;
1609 } 1609 }
1610 1610
1611 addr = vm_mmap(obj->filp, 0, args->size, 1611 addr = vm_mmap(obj->base.filp, 0, args->size,
1612 PROT_READ | PROT_WRITE, MAP_SHARED, 1612 PROT_READ | PROT_WRITE, MAP_SHARED,
1613 args->offset); 1613 args->offset);
1614 if (args->flags & I915_MMAP_WC) { 1614 if (args->flags & I915_MMAP_WC) {
@@ -1616,7 +1616,7 @@ i915_gem_mmap_ioctl(struct drm_device *dev, void *data,
1616 struct vm_area_struct *vma; 1616 struct vm_area_struct *vma;
1617 1617
1618 if (down_write_killable(&mm->mmap_sem)) { 1618 if (down_write_killable(&mm->mmap_sem)) {
1619 drm_gem_object_unreference_unlocked(obj); 1619 drm_gem_object_unreference_unlocked(&obj->base);
1620 return -EINTR; 1620 return -EINTR;
1621 } 1621 }
1622 vma = find_vma(mm, addr); 1622 vma = find_vma(mm, addr);
@@ -1628,9 +1628,9 @@ i915_gem_mmap_ioctl(struct drm_device *dev, void *data,
1628 up_write(&mm->mmap_sem); 1628 up_write(&mm->mmap_sem);
1629 1629
1630 /* This may race, but that's ok, it only gets set */ 1630 /* This may race, but that's ok, it only gets set */
1631 WRITE_ONCE(to_intel_bo(obj)->has_wc_mmap, true); 1631 WRITE_ONCE(obj->has_wc_mmap, true);
1632 } 1632 }
1633 drm_gem_object_unreference_unlocked(obj); 1633 drm_gem_object_unreference_unlocked(&obj->base);
1634 if (IS_ERR((void *)addr)) 1634 if (IS_ERR((void *)addr))
1635 return addr; 1635 return addr;
1636 1636
@@ -1968,8 +1968,8 @@ i915_gem_mmap_gtt(struct drm_file *file,
1968 if (ret) 1968 if (ret)
1969 return ret; 1969 return ret;
1970 1970
1971 obj = to_intel_bo(drm_gem_object_lookup(file, handle)); 1971 obj = i915_gem_object_lookup(file, handle);
1972 if (&obj->base == NULL) { 1972 if (!obj) {
1973 ret = -ENOENT; 1973 ret = -ENOENT;
1974 goto unlock; 1974 goto unlock;
1975 } 1975 }
@@ -2792,8 +2792,8 @@ i915_gem_wait_ioctl(struct drm_device *dev, void *data, struct drm_file *file)
2792 if (ret) 2792 if (ret)
2793 return ret; 2793 return ret;
2794 2794
2795 obj = to_intel_bo(drm_gem_object_lookup(file, args->bo_handle)); 2795 obj = i915_gem_object_lookup(file, args->bo_handle);
2796 if (&obj->base == NULL) { 2796 if (!obj) {
2797 mutex_unlock(&dev->struct_mutex); 2797 mutex_unlock(&dev->struct_mutex);
2798 return -ENOENT; 2798 return -ENOENT;
2799 } 2799 }
@@ -3596,8 +3596,8 @@ int i915_gem_get_caching_ioctl(struct drm_device *dev, void *data,
3596 struct drm_i915_gem_caching *args = data; 3596 struct drm_i915_gem_caching *args = data;
3597 struct drm_i915_gem_object *obj; 3597 struct drm_i915_gem_object *obj;
3598 3598
3599 obj = to_intel_bo(drm_gem_object_lookup(file, args->handle)); 3599 obj = i915_gem_object_lookup(file, args->handle);
3600 if (&obj->base == NULL) 3600 if (!obj)
3601 return -ENOENT; 3601 return -ENOENT;
3602 3602
3603 switch (obj->cache_level) { 3603 switch (obj->cache_level) {
@@ -3657,8 +3657,8 @@ int i915_gem_set_caching_ioctl(struct drm_device *dev, void *data,
3657 if (ret) 3657 if (ret)
3658 goto rpm_put; 3658 goto rpm_put;
3659 3659
3660 obj = to_intel_bo(drm_gem_object_lookup(file, args->handle)); 3660 obj = i915_gem_object_lookup(file, args->handle);
3661 if (&obj->base == NULL) { 3661 if (!obj) {
3662 ret = -ENOENT; 3662 ret = -ENOENT;
3663 goto unlock; 3663 goto unlock;
3664 } 3664 }
@@ -4026,8 +4026,8 @@ i915_gem_busy_ioctl(struct drm_device *dev, void *data,
4026 if (ret) 4026 if (ret)
4027 return ret; 4027 return ret;
4028 4028
4029 obj = to_intel_bo(drm_gem_object_lookup(file, args->handle)); 4029 obj = i915_gem_object_lookup(file, args->handle);
4030 if (&obj->base == NULL) { 4030 if (!obj) {
4031 ret = -ENOENT; 4031 ret = -ENOENT;
4032 goto unlock; 4032 goto unlock;
4033 } 4033 }
@@ -4091,8 +4091,8 @@ i915_gem_madvise_ioctl(struct drm_device *dev, void *data,
4091 if (ret) 4091 if (ret)
4092 return ret; 4092 return ret;
4093 4093
4094 obj = to_intel_bo(drm_gem_object_lookup(file_priv, args->handle)); 4094 obj = i915_gem_object_lookup(file_priv, args->handle);
4095 if (&obj->base == NULL) { 4095 if (!obj) {
4096 ret = -ENOENT; 4096 ret = -ENOENT;
4097 goto unlock; 4097 goto unlock;
4098 } 4098 }
diff --git a/drivers/gpu/drm/i915/i915_gem_tiling.c b/drivers/gpu/drm/i915/i915_gem_tiling.c
index 8030199731db..46e80f30afcd 100644
--- a/drivers/gpu/drm/i915/i915_gem_tiling.c
+++ b/drivers/gpu/drm/i915/i915_gem_tiling.c
@@ -166,8 +166,8 @@ i915_gem_set_tiling(struct drm_device *dev, void *data,
166 struct drm_i915_gem_object *obj; 166 struct drm_i915_gem_object *obj;
167 int ret = 0; 167 int ret = 0;
168 168
169 obj = to_intel_bo(drm_gem_object_lookup(file, args->handle)); 169 obj = i915_gem_object_lookup(file, args->handle);
170 if (&obj->base == NULL) 170 if (!obj)
171 return -ENOENT; 171 return -ENOENT;
172 172
173 if (!i915_tiling_ok(dev, 173 if (!i915_tiling_ok(dev,
@@ -297,8 +297,8 @@ i915_gem_get_tiling(struct drm_device *dev, void *data,
297 struct drm_i915_private *dev_priv = to_i915(dev); 297 struct drm_i915_private *dev_priv = to_i915(dev);
298 struct drm_i915_gem_object *obj; 298 struct drm_i915_gem_object *obj;
299 299
300 obj = to_intel_bo(drm_gem_object_lookup(file, args->handle)); 300 obj = i915_gem_object_lookup(file, args->handle);
301 if (&obj->base == NULL) 301 if (!obj)
302 return -ENOENT; 302 return -ENOENT;
303 303
304 mutex_lock(&dev->struct_mutex); 304 mutex_lock(&dev->struct_mutex);
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
index 2f7af855a585..77d320584478 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -15089,8 +15089,8 @@ intel_user_framebuffer_create(struct drm_device *dev,
15089 struct drm_i915_gem_object *obj; 15089 struct drm_i915_gem_object *obj;
15090 struct drm_mode_fb_cmd2 mode_cmd = *user_mode_cmd; 15090 struct drm_mode_fb_cmd2 mode_cmd = *user_mode_cmd;
15091 15091
15092 obj = to_intel_bo(drm_gem_object_lookup(filp, mode_cmd.handles[0])); 15092 obj = i915_gem_object_lookup(filp, mode_cmd.handles[0]);
15093 if (&obj->base == NULL) 15093 if (!obj)
15094 return ERR_PTR(-ENOENT); 15094 return ERR_PTR(-ENOENT);
15095 15095
15096 fb = intel_framebuffer_create(dev, &mode_cmd, obj); 15096 fb = intel_framebuffer_create(dev, &mode_cmd, obj);
diff --git a/drivers/gpu/drm/i915/intel_overlay.c b/drivers/gpu/drm/i915/intel_overlay.c
index 3212d8806b5a..5ca797b01ccb 100644
--- a/drivers/gpu/drm/i915/intel_overlay.c
+++ b/drivers/gpu/drm/i915/intel_overlay.c
@@ -1122,9 +1122,8 @@ int intel_overlay_put_image_ioctl(struct drm_device *dev, void *data,
1122 } 1122 }
1123 crtc = to_intel_crtc(drmmode_crtc); 1123 crtc = to_intel_crtc(drmmode_crtc);
1124 1124
1125 new_bo = to_intel_bo(drm_gem_object_lookup(file_priv, 1125 new_bo = i915_gem_object_lookup(file_priv, put_image_rec->bo_handle);
1126 put_image_rec->bo_handle)); 1126 if (!new_bo) {
1127 if (&new_bo->base == NULL) {
1128 ret = -ENOENT; 1127 ret = -ENOENT;
1129 goto out_free; 1128 goto out_free;
1130 } 1129 }