diff mbox

drm/i915: BUG_ON when ggtt_view is NULL

Message ID 1458834860-7898-1-git-send-email-matthew.auld@intel.com (mailing list archive)
State New, archived
Headers show

Commit Message

Matthew Auld March 24, 2016, 3:54 p.m. UTC
Lets BUG_ON and don't bother with a WARN and returning an error, so we can
remove the need to pollute the code with error handling, after all it is
a programmer error to provide NULL view. Also while we're here remove
redundant NULL ggtt_view check.

Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Cc: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com>
Signed-off-by: Matthew Auld <matthew.auld@intel.com>
---
 drivers/gpu/drm/i915/i915_gem.c     |  9 ++-------
 drivers/gpu/drm/i915/i915_gem_gtt.c | 10 +---------
 2 files changed, 3 insertions(+), 16 deletions(-)

Comments

Daniel Vetter March 29, 2016, 11:46 a.m. UTC | #1
On Thu, Mar 24, 2016 at 03:54:20PM +0000, Matthew Auld wrote:
> Lets BUG_ON and don't bother with a WARN and returning an error, so we can
> remove the need to pollute the code with error handling, after all it is
> a programmer error to provide NULL view. Also while we're here remove
> redundant NULL ggtt_view check.
> 
> Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
> Cc: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com>
> Signed-off-by: Matthew Auld <matthew.auld@intel.com>

Yeah, seems to have sprawled too much for not much gain. BUG_ON approved
;-)

Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch>
> ---
>  drivers/gpu/drm/i915/i915_gem.c     |  9 ++-------
>  drivers/gpu/drm/i915/i915_gem_gtt.c | 10 +---------
>  2 files changed, 3 insertions(+), 16 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
> index c7a997a..cbf616a 100644
> --- a/drivers/gpu/drm/i915/i915_gem.c
> +++ b/drivers/gpu/drm/i915/i915_gem.c
> @@ -4235,9 +4235,6 @@ i915_gem_object_do_pin(struct drm_i915_gem_object *obj,
>  	vma = ggtt_view ? i915_gem_obj_to_ggtt_view(obj, ggtt_view) :
>  			  i915_gem_obj_to_vma(obj, vm);
>  
> -	if (IS_ERR(vma))
> -		return PTR_ERR(vma);
> -
>  	if (vma) {
>  		if (WARN_ON(vma->pin_count == DRM_I915_GEM_OBJECT_MAX_PIN_COUNT))
>  			return -EBUSY;
> @@ -4300,8 +4297,7 @@ i915_gem_object_ggtt_pin(struct drm_i915_gem_object *obj,
>  			 uint32_t alignment,
>  			 uint64_t flags)
>  {
> -	if (WARN_ONCE(!view, "no view specified"))
> -		return -EINVAL;
> +	BUG_ON(!view);
>  
>  	return i915_gem_object_do_pin(obj, i915_obj_to_ggtt(obj), view,
>  				      alignment, flags | PIN_GLOBAL);
> @@ -4618,8 +4614,7 @@ struct i915_vma *i915_gem_obj_to_ggtt_view(struct drm_i915_gem_object *obj,
>  	struct i915_address_space *ggtt = i915_obj_to_ggtt(obj);
>  	struct i915_vma *vma;
>  
> -	if (WARN_ONCE(!view, "no view specified"))
> -		return ERR_PTR(-EINVAL);
> +	BUG_ON(!view);
>  
>  	list_for_each_entry(vma, &obj->vma_list, obj_link)
>  		if (vma->vm == ggtt &&
> diff --git a/drivers/gpu/drm/i915/i915_gem_gtt.c b/drivers/gpu/drm/i915/i915_gem_gtt.c
> index 7cfafdc..073c6bb 100644
> --- a/drivers/gpu/drm/i915/i915_gem_gtt.c
> +++ b/drivers/gpu/drm/i915/i915_gem_gtt.c
> @@ -3341,15 +3341,7 @@ i915_gem_obj_lookup_or_create_ggtt_vma(struct drm_i915_gem_object *obj,
>  				       const struct i915_ggtt_view *view)
>  {
>  	struct i915_address_space *ggtt = i915_obj_to_ggtt(obj);
> -	struct i915_vma *vma;
> -
> -	if (WARN_ON(!view))
> -		return ERR_PTR(-EINVAL);
> -
> -	vma = i915_gem_obj_to_ggtt_view(obj, view);
> -
> -	if (IS_ERR(vma))
> -		return vma;
> +	struct i915_vma *vma = i915_gem_obj_to_ggtt_view(obj, view);
>  
>  	if (!vma)
>  		vma = __i915_gem_vma_create(obj, ggtt, view);
> -- 
> 2.4.3
> 
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx
Joonas Lahtinen March 30, 2016, 10:02 a.m. UTC | #2
On to, 2016-03-24 at 15:54 +0000, Matthew Auld wrote:
> Lets BUG_ON and don't bother with a WARN and returning an error, so we can
> remove the need to pollute the code with error handling, after all it is
> a programmer error to provide NULL view. Also while we're here remove
> redundant NULL ggtt_view check.
> 
> Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
> Cc: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com>

Thanks for the patch, I'll merge.

Reviewed-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
> Signed-off-by: Matthew Auld <matthew.auld@intel.com>
> ---
>  drivers/gpu/drm/i915/i915_gem.c     |  9 ++-------
>  drivers/gpu/drm/i915/i915_gem_gtt.c | 10 +---------
>  2 files changed, 3 insertions(+), 16 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
> index c7a997a..cbf616a 100644
> --- a/drivers/gpu/drm/i915/i915_gem.c
> +++ b/drivers/gpu/drm/i915/i915_gem.c
> @@ -4235,9 +4235,6 @@ i915_gem_object_do_pin(struct drm_i915_gem_object *obj,
>  	vma = ggtt_view ? i915_gem_obj_to_ggtt_view(obj, ggtt_view) :
>  			  i915_gem_obj_to_vma(obj, vm);
>  
> -	if (IS_ERR(vma))
> -		return PTR_ERR(vma);
> -
>  	if (vma) {
>  		if (WARN_ON(vma->pin_count == DRM_I915_GEM_OBJECT_MAX_PIN_COUNT))
>  			return -EBUSY;
> @@ -4300,8 +4297,7 @@ i915_gem_object_ggtt_pin(struct drm_i915_gem_object *obj,
>  			 uint32_t alignment,
>  			 uint64_t flags)
>  {
> -	if (WARN_ONCE(!view, "no view specified"))
> -		return -EINVAL;
> +	BUG_ON(!view);
>  
>  	return i915_gem_object_do_pin(obj, i915_obj_to_ggtt(obj), view,
>  				      alignment, flags | PIN_GLOBAL);
> @@ -4618,8 +4614,7 @@ struct i915_vma *i915_gem_obj_to_ggtt_view(struct drm_i915_gem_object *obj,
>  	struct i915_address_space *ggtt = i915_obj_to_ggtt(obj);
>  	struct i915_vma *vma;
>  
> -	if (WARN_ONCE(!view, "no view specified"))
> -		return ERR_PTR(-EINVAL);
> +	BUG_ON(!view);
>  
>  	list_for_each_entry(vma, &obj->vma_list, obj_link)
>  		if (vma->vm == ggtt &&
> diff --git a/drivers/gpu/drm/i915/i915_gem_gtt.c b/drivers/gpu/drm/i915/i915_gem_gtt.c
> index 7cfafdc..073c6bb 100644
> --- a/drivers/gpu/drm/i915/i915_gem_gtt.c
> +++ b/drivers/gpu/drm/i915/i915_gem_gtt.c
> @@ -3341,15 +3341,7 @@ i915_gem_obj_lookup_or_create_ggtt_vma(struct drm_i915_gem_object *obj,
>  				       const struct i915_ggtt_view *view)
>  {
>  	struct i915_address_space *ggtt = i915_obj_to_ggtt(obj);
> -	struct i915_vma *vma;
> -
> -	if (WARN_ON(!view))
> -		return ERR_PTR(-EINVAL);
> -
> -	vma = i915_gem_obj_to_ggtt_view(obj, view);
> -
> -	if (IS_ERR(vma))
> -		return vma;
> +	struct i915_vma *vma = i915_gem_obj_to_ggtt_view(obj, view);
>  
>  	if (!vma)
>  		vma = __i915_gem_vma_create(obj, ggtt, view);
diff mbox

Patch

diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
index c7a997a..cbf616a 100644
--- a/drivers/gpu/drm/i915/i915_gem.c
+++ b/drivers/gpu/drm/i915/i915_gem.c
@@ -4235,9 +4235,6 @@  i915_gem_object_do_pin(struct drm_i915_gem_object *obj,
 	vma = ggtt_view ? i915_gem_obj_to_ggtt_view(obj, ggtt_view) :
 			  i915_gem_obj_to_vma(obj, vm);
 
-	if (IS_ERR(vma))
-		return PTR_ERR(vma);
-
 	if (vma) {
 		if (WARN_ON(vma->pin_count == DRM_I915_GEM_OBJECT_MAX_PIN_COUNT))
 			return -EBUSY;
@@ -4300,8 +4297,7 @@  i915_gem_object_ggtt_pin(struct drm_i915_gem_object *obj,
 			 uint32_t alignment,
 			 uint64_t flags)
 {
-	if (WARN_ONCE(!view, "no view specified"))
-		return -EINVAL;
+	BUG_ON(!view);
 
 	return i915_gem_object_do_pin(obj, i915_obj_to_ggtt(obj), view,
 				      alignment, flags | PIN_GLOBAL);
@@ -4618,8 +4614,7 @@  struct i915_vma *i915_gem_obj_to_ggtt_view(struct drm_i915_gem_object *obj,
 	struct i915_address_space *ggtt = i915_obj_to_ggtt(obj);
 	struct i915_vma *vma;
 
-	if (WARN_ONCE(!view, "no view specified"))
-		return ERR_PTR(-EINVAL);
+	BUG_ON(!view);
 
 	list_for_each_entry(vma, &obj->vma_list, obj_link)
 		if (vma->vm == ggtt &&
diff --git a/drivers/gpu/drm/i915/i915_gem_gtt.c b/drivers/gpu/drm/i915/i915_gem_gtt.c
index 7cfafdc..073c6bb 100644
--- a/drivers/gpu/drm/i915/i915_gem_gtt.c
+++ b/drivers/gpu/drm/i915/i915_gem_gtt.c
@@ -3341,15 +3341,7 @@  i915_gem_obj_lookup_or_create_ggtt_vma(struct drm_i915_gem_object *obj,
 				       const struct i915_ggtt_view *view)
 {
 	struct i915_address_space *ggtt = i915_obj_to_ggtt(obj);
-	struct i915_vma *vma;
-
-	if (WARN_ON(!view))
-		return ERR_PTR(-EINVAL);
-
-	vma = i915_gem_obj_to_ggtt_view(obj, view);
-
-	if (IS_ERR(vma))
-		return vma;
+	struct i915_vma *vma = i915_gem_obj_to_ggtt_view(obj, view);
 
 	if (!vma)
 		vma = __i915_gem_vma_create(obj, ggtt, view);