On Sun, Aug 26, 2012 at 8:42 PM, Daniel Vetter <daniel at ffwll.ch> wrote: > On Sat, Aug 25, 2012 at 12:16:24AM +0200, Sedat Dilek wrote: >> This is a fixup patch for the merge of drm-next into linux-next caused >> by commit b6c7488df68a ("drm/i915/contexts: fix list corruption"). >> >> Reported-By: Stephen Rothwell <sfr at canb.auug.org.au> >> Signed-off-by: Sedat Dilek <sedat.dilek at gmail.com> > > This is wrong, switch_context _must_ happen before ring_idle, otherwise > all hell can break loose on resume.
I followed what's in drm-intel-next not what was in Linus-tree. - Sedat - http://cgit.freedesktop.org/~danvet/drm-intel/tree/drivers/gpu/drm/i915/i915_gem.c?h=drm-intel-next#n2432 > -Daniel > >> --- >> drivers/gpu/drm/i915/i915_gem.c | 4 ++-- >> 1 file changed, 2 insertions(+), 2 deletions(-) >> >> diff --git a/drivers/gpu/drm/i915/i915_gem.c >> b/drivers/gpu/drm/i915/i915_gem.c >> index 4f6841d..e8a5cb2 100644 >> --- a/drivers/gpu/drm/i915/i915_gem.c >> +++ b/drivers/gpu/drm/i915/i915_gem.c >> @@ -2273,11 +2273,11 @@ int i915_gpu_idle(struct drm_device *dev) >> >> /* Flush everything onto the inactive list. */ >> for_each_ring(ring, dev_priv, i) { >> - ret = i915_switch_context(ring, NULL, DEFAULT_CONTEXT_ID); >> + ret = i915_ring_idle(ring); >> if (ret) >> return ret; >> >> - ret = i915_ring_idle(ring); >> + ret = i915_switch_context(ring, NULL, DEFAULT_CONTEXT_ID); >> if (ret) >> return ret; >> >> -- >> 1.7.9.5 >> >> _______________________________________________ >> dri-devel mailing list >> dri-devel at lists.freedesktop.org >> http://lists.freedesktop.org/mailman/listinfo/dri-devel > > -- > Daniel Vetter > Mail: daniel at ffwll.ch > Mobile: +41 (0)79 365 57 48