Message ID | 1404238671-18760-7-git-send-email-benjamin.widawsky@intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Tue, Jul 01, 2014 at 11:17:41AM -0700, Ben Widawsky wrote: > The bound list is global (all objects which back the VMAs are stored > here). Recently the BUG() in the offset lookup was demoted to a WARN, > but the fault actually lies in the caller, here. > > This bug has existed since the initial introduction of PPGTT (however, > it was fixed in unmerged patches to fix up the error state). Aside: This is another bug than the one which spurred me to demote the BUG_ON to a WARN_ON. Patch merged with that patch referenced for clarity. -Daniel > > Signed-off-by: Ben Widawsky <ben@bwidawsk.net> > --- > drivers/gpu/drm/i915/i915_gpu_error.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/drivers/gpu/drm/i915/i915_gpu_error.c b/drivers/gpu/drm/i915/i915_gpu_error.c > index 66cf417..550ba38 100644 > --- a/drivers/gpu/drm/i915/i915_gpu_error.c > +++ b/drivers/gpu/drm/i915/i915_gpu_error.c > @@ -871,6 +871,9 @@ static void i915_gem_record_active_context(struct intel_engine_cs *ring, > return; > > list_for_each_entry(obj, &dev_priv->mm.bound_list, global_list) { > + if (!i915_gem_obj_ggtt_bound(obj)) > + continue; > + > if ((error->ccid & PAGE_MASK) == i915_gem_obj_ggtt_offset(obj)) { > ering->ctx = i915_error_ggtt_object_create(dev_priv, obj); > break; > -- > 2.0.1 > > _______________________________________________ > Intel-gfx mailing list > Intel-gfx@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/intel-gfx
diff --git a/drivers/gpu/drm/i915/i915_gpu_error.c b/drivers/gpu/drm/i915/i915_gpu_error.c index 66cf417..550ba38 100644 --- a/drivers/gpu/drm/i915/i915_gpu_error.c +++ b/drivers/gpu/drm/i915/i915_gpu_error.c @@ -871,6 +871,9 @@ static void i915_gem_record_active_context(struct intel_engine_cs *ring, return; list_for_each_entry(obj, &dev_priv->mm.bound_list, global_list) { + if (!i915_gem_obj_ggtt_bound(obj)) + continue; + if ((error->ccid & PAGE_MASK) == i915_gem_obj_ggtt_offset(obj)) { ering->ctx = i915_error_ggtt_object_create(dev_priv, obj); break;
The bound list is global (all objects which back the VMAs are stored here). Recently the BUG() in the offset lookup was demoted to a WARN, but the fault actually lies in the caller, here. This bug has existed since the initial introduction of PPGTT (however, it was fixed in unmerged patches to fix up the error state). Signed-off-by: Ben Widawsky <ben@bwidawsk.net> --- drivers/gpu/drm/i915/i915_gpu_error.c | 3 +++ 1 file changed, 3 insertions(+)