Commit 62d4028f authored by Chris Wilson's avatar Chris Wilson
Browse files

drm/i915/gtt: Convert WARN_ON to GEM debugging



As we presume that we have sufficient coverage of CI for new machines
and new code paths, we do not need to have user impacting WARN_ON for
programming errors inside i915_gem_gtt.c, so convert those over to
GEM_BUG_ON. This leaves the memory debugging WARN_ON in place as they
are not so easy to exercise with CI.

Signed-off-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
Cc: Mika Kuoppala <mika.kuoppala@linux.intel.com>
Cc: Matthew Auld <matthew.auld@intel.com>
Reviewed-by: default avatarMatthew Auld <matthew.auld@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20180215110759.28603-1-chris@chris-wilson.co.uk
parent cc329095
Loading
Loading
Loading
Loading
+10 −12
Original line number Diff line number Diff line
@@ -710,7 +710,7 @@ alloc_pdp(struct i915_address_space *vm)
	struct i915_page_directory_pointer *pdp;
	int ret = -ENOMEM;

	WARN_ON(!use_4lvl(vm));
	GEM_BUG_ON(!use_4lvl(vm));

	pdp = kzalloc(sizeof(*pdp), GFP_KERNEL);
	if (!pdp)
@@ -2249,9 +2249,9 @@ void i915_ppgtt_release(struct kref *kref)
	trace_i915_ppgtt_release(&ppgtt->base);

	/* vmas should already be unbound and destroyed */
	WARN_ON(!list_empty(&ppgtt->base.active_list));
	WARN_ON(!list_empty(&ppgtt->base.inactive_list));
	WARN_ON(!list_empty(&ppgtt->base.unbound_list));
	GEM_BUG_ON(!list_empty(&ppgtt->base.active_list));
	GEM_BUG_ON(!list_empty(&ppgtt->base.inactive_list));
	GEM_BUG_ON(!list_empty(&ppgtt->base.unbound_list));

	ppgtt->base.cleanup(&ppgtt->base);
	i915_address_space_fini(&ppgtt->base);
@@ -2814,10 +2814,10 @@ int i915_gem_init_aliasing_ppgtt(struct drm_i915_private *i915)

	i915->mm.aliasing_ppgtt = ppgtt;

	WARN_ON(ggtt->base.bind_vma != ggtt_bind_vma);
	GEM_BUG_ON(ggtt->base.bind_vma != ggtt_bind_vma);
	ggtt->base.bind_vma = aliasing_gtt_bind_vma;

	WARN_ON(ggtt->base.unbind_vma != ggtt_unbind_vma);
	GEM_BUG_ON(ggtt->base.unbind_vma != ggtt_unbind_vma);
	ggtt->base.unbind_vma = aliasing_gtt_unbind_vma;

	return 0;
@@ -2908,7 +2908,7 @@ void i915_ggtt_cleanup_hw(struct drm_i915_private *dev_priv)
	ggtt->base.closed = true;

	mutex_lock(&dev_priv->drm.struct_mutex);
	WARN_ON(!list_empty(&ggtt->base.active_list));
	GEM_BUG_ON(!list_empty(&ggtt->base.active_list));
	list_for_each_entry_safe(vma, vn, &ggtt->base.inactive_list, vm_link)
		WARN_ON(i915_vma_unbind(vma));
	mutex_unlock(&dev_priv->drm.struct_mutex);
@@ -3801,6 +3801,9 @@ i915_get_ggtt_vma_pages(struct i915_vma *vma)
	GEM_BUG_ON(!i915_gem_object_has_pinned_pages(vma->obj));

	switch (vma->ggtt_view.type) {
	default:
		GEM_BUG_ON(vma->ggtt_view.type);
		/* fall through */
	case I915_GGTT_VIEW_NORMAL:
		vma->pages = vma->obj->mm.pages;
		return 0;
@@ -3813,11 +3816,6 @@ i915_get_ggtt_vma_pages(struct i915_vma *vma)
	case I915_GGTT_VIEW_PARTIAL:
		vma->pages = intel_partial_pages(&vma->ggtt_view, vma->obj);
		break;

	default:
		WARN_ONCE(1, "GGTT view %u not implemented!\n",
			  vma->ggtt_view.type);
		return -EINVAL;
	}

	ret = 0;