Am 10.12.2014 um 13:55 schrieb Luis Henriques:
Hi Christian,

On Mon, Dec 08, 2014 at 02:47:33PM +0100, Christian König wrote:
As requested a version of the patch rebased on 3.17 is attached.

Do you think this is also appropriate for the 3.16 kernel?

The problem that this patch fixes is present since kernel 3.15 but very unlikely to happen.

If 3.16 is still maintained then adding this one as well probably won't hurt.

Regards,
Christian.


Cheers,
--
Luís

Regards,
Christian.

Am 07.12.2014 um 07:09 schrieb [email protected]:
The patch below does not apply to the 3.17-stable tree.
If someone wants it applied there, or to any other stable or longterm
tree, then please email the backport, including the original git commit
id to <[email protected]>.

thanks,

greg k-h

------------------ original commit in Linus's tree ------------------

 From 86b276385c6a986872e4cd144f5940b156053c3f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Christian=20K=C3=B6nig?= <[email protected]>
Date: Thu, 27 Nov 2014 13:12:58 +0100
Subject: [PATCH] drm/radeon: sync all BOs involved in a CS v2
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Not just the userspace relocs, otherwise we won't wait
for a swapped out page tables to be swapped in again.

v2: rebased on Alex current drm-fixes-3.18

Signed-off-by: Christian König <[email protected]>
Cc: [email protected]
Signed-off-by: Alex Deucher <[email protected]>

diff --git a/drivers/gpu/drm/radeon/radeon_cs.c 
b/drivers/gpu/drm/radeon/radeon_cs.c
index a3e7aed7e680..6f377de099f9 100644
--- a/drivers/gpu/drm/radeon/radeon_cs.c
+++ b/drivers/gpu/drm/radeon/radeon_cs.c
@@ -251,22 +251,19 @@ static int radeon_cs_get_ring(struct radeon_cs_parser *p, 
u32 ring, s32 priority
  static int radeon_cs_sync_rings(struct radeon_cs_parser *p)
  {
-       int i, r = 0;
+       struct radeon_cs_reloc *reloc;
+       int r;
-       for (i = 0; i < p->nrelocs; i++) {
+       list_for_each_entry(reloc, &p->validated, tv.head) {
                struct reservation_object *resv;
-               if (!p->relocs[i].robj)
-                       continue;
-
-               resv = p->relocs[i].robj->tbo.resv;
+               resv = reloc->robj->tbo.resv;
                r = radeon_semaphore_sync_resv(p->rdev, p->ib.semaphore, resv,
-                                              p->relocs[i].tv.shared);
-
+                                              reloc->tv.shared);
                if (r)
-                       break;
+                       return r;
        }
-       return r;
+       return 0;
  }
  /* XXX: note that this is called from the legacy UMS CS ioctl as well */

 From 131a7ff8fea48014638b84b25cf58f52c9f3d268 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Christian=20K=C3=B6nig?= <[email protected]>
Date: Thu, 27 Nov 2014 13:12:58 +0100
Subject: [PATCH] drm/radeon: sync all BOs involved in a CS v3
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Not just the userspace relocs, otherwise we won't wait
for a swapped out page tables to be swapped in again.

v2: rebased on Alex current drm-fixes-3.18
v3: rebased on 3.17-stable tree

Signed-off-by: Christian K??nig <[email protected]>
Cc: [email protected]
Signed-off-by: Alex Deucher <[email protected]>
---
  drivers/gpu/drm/radeon/radeon_cs.c | 9 +++------
  1 file changed, 3 insertions(+), 6 deletions(-)

diff --git a/drivers/gpu/drm/radeon/radeon_cs.c 
b/drivers/gpu/drm/radeon/radeon_cs.c
index e244c2d..67f9157 100644
--- a/drivers/gpu/drm/radeon/radeon_cs.c
+++ b/drivers/gpu/drm/radeon/radeon_cs.c
@@ -226,14 +226,11 @@ static int radeon_cs_get_ring(struct radeon_cs_parser *p, 
u32 ring, s32 priority
static void radeon_cs_sync_rings(struct radeon_cs_parser *p)
  {
-       int i;
-
-       for (i = 0; i < p->nrelocs; i++) {
-               if (!p->relocs[i].robj)
-                       continue;
+       struct radeon_cs_reloc *reloc;
+ list_for_each_entry(reloc, &p->validated, tv.head) {
                radeon_semaphore_sync_to(p->ib.semaphore,
-                                        p->relocs[i].robj->tbo.sync_obj);
+                                        reloc->robj->tbo.sync_obj);
        }
  }
--
1.9.1


--
To unsubscribe from this list: send the line "unsubscribe stable" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to