diff options
author | Chris Wilson <chris@chris-wilson.co.uk> | 2016-07-20 08:31:51 -0400 |
---|---|---|
committer | Chris Wilson <chris@chris-wilson.co.uk> | 2016-07-20 08:40:10 -0400 |
commit | 03ac0642f67a3a888bf82b1042c07d5df2b52a89 (patch) | |
tree | 139d14240183812b132d3a747581dbfab7fedfa6 | |
parent | 9a6feaf0d74f91eeef23d0ee72c5ce69a559b31b (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.h | 20 | ||||
-rw-r--r-- | drivers/gpu/drm/i915/i915_gem.c | 58 | ||||
-rw-r--r-- | drivers/gpu/drm/i915/i915_gem_tiling.c | 8 | ||||
-rw-r--r-- | drivers/gpu/drm/i915/intel_display.c | 4 | ||||
-rw-r--r-- | drivers/gpu/drm/i915/intel_overlay.c | 5 |
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 | |
2290 | static inline struct drm_i915_gem_object * | ||
2291 | to_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 | |||
2299 | static inline struct drm_i915_gem_object * | ||
2300 | i915_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 | ||
2306 | extern struct drm_gem_object * | ||
2307 | drm_gem_object_lookup(struct drm_file *file, u32 handle); | ||
2290 | 2308 | ||
2291 | static inline bool | 2309 | static inline bool |
2292 | i915_gem_object_has_struct_page(const struct drm_i915_gem_object *obj) | 2310 | i915_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 | } |