Message ID | 1376442549-5087-3-git-send-email-benjamin.widawsky@intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Tue, Aug 13, 2013 at 06:09:08PM -0700, Ben Widawsky wrote: > The conditional is usually a recoverable driver bug, and so WARNing, and > preventing the drm_mm code from doing potential damage (BUG) is > desirable. > > This issue was hit and fixed twice while developing the i915 multiple > address space code. The first fix is the patch just before this, and is > hit on an not frequently occuring error path. Another was fixed during > patch iteration, so it's hard to see from the patch: > > commit c6cfb325677ea6305fb19acf3a4d14ea267f923e > Author: Ben Widawsky <ben@bwidawsk.net> > Date: Fri Jul 5 14:41:06 2013 -0700 > > drm/i915: Embed drm_mm_node in i915 gem obj > > From the intel-gfx mailing list, we discussed this: > References: <20130705191235.GA3057@bwidawsk.net> > > Cc: Dave Airlie <airlied@redhat.com> > CC: <dri-devel@lists.freedesktop.org> > Acked-by: Chris Wilson <chris@chris-wilson.co.uk> > Signed-off-by: Ben Widawsky <ben@bwidawsk.net> Patches 2&3 of this series are merged to dinq, thanks. -Daniel
diff --git a/drivers/gpu/drm/drm_mm.c b/drivers/gpu/drm/drm_mm.c index aded1e1..af93cc5 100644 --- a/drivers/gpu/drm/drm_mm.c +++ b/drivers/gpu/drm/drm_mm.c @@ -254,6 +254,9 @@ void drm_mm_remove_node(struct drm_mm_node *node) struct drm_mm *mm = node->mm; struct drm_mm_node *prev_node; + if (WARN_ON(!node->allocated)) + return; + BUG_ON(node->scanned_block || node->scanned_prev_free || node->scanned_next_free);