diff mbox

[drm-next,3/3] drm/i915/contexts: Fixup merge with commit b6c7488df68a

Message ID 1345846584-5910-3-git-send-email-sedat.dilek@gmail.com (mailing list archive)
State New, archived
Headers show

Commit Message

Sedat Dilek Aug. 24, 2012, 10:16 p.m. UTC
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@canb.auug.org.au>
Signed-off-by: Sedat Dilek <sedat.dilek@gmail.com>
---
 drivers/gpu/drm/i915/i915_gem.c |    4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

Comments

Daniel Vetter Aug. 26, 2012, 6:42 p.m. UTC | #1
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@canb.auug.org.au>
> Signed-off-by: Sedat Dilek <sedat.dilek@gmail.com>

This is wrong, switch_context _must_ happen before ring_idle, otherwise
all hell can break loose on resume.
-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@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/dri-devel
Sedat Dilek Aug. 26, 2012, 7:13 p.m. UTC | #2
On Sun, Aug 26, 2012 at 8:42 PM, Daniel Vetter <daniel@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@canb.auug.org.au>
>> Signed-off-by: Sedat Dilek <sedat.dilek@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@lists.freedesktop.org
>> http://lists.freedesktop.org/mailman/listinfo/dri-devel
>
> --
> Daniel Vetter
> Mail: daniel@ffwll.ch
> Mobile: +41 (0)79 365 57 48
diff mbox

Patch

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;