aboutsummaryrefslogtreecommitdiffstats
path: root/meta-amdfalconx86/recipes-graphics/drm/files/0074-drm-fix-a-bug-in-va-range-allocation.patch
blob: 0d9c48a1b160ba7bd459e2de31c37fcdf48028e3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
From 7508b82630fc31ab2f02e3613747da3a64e05f60 Mon Sep 17 00:00:00 2001
From: Ken Wang <Qingqing.Wang@amd.com>
Date: Thu, 30 Jun 2016 11:19:08 +0800
Subject: [PATCH 074/117] drm: fix a bug in va range allocation

Change-Id: Ic038990a14096ff12e3f309f68fd47d057d6bedd
Signed-off-by: David Mao <david.mao@amd.com>
Reviewed-by: Ken Wang <Qingqing.Wang@amd.com>
---
 amdgpu/amdgpu_vamgr.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/amdgpu/amdgpu_vamgr.c b/amdgpu/amdgpu_vamgr.c
index f3e38f6..1518b7a 100644
--- a/amdgpu/amdgpu_vamgr.c
+++ b/amdgpu/amdgpu_vamgr.c
@@ -201,11 +201,15 @@ static uint64_t amdgpu_vamgr_find_va_in_range(struct amdgpu_bo_va_mgr *mgr, uint
 		waste = waste ? alignment - waste : 0;
 		offset += waste;
 		/* the gap between the range_min and hole->offset need to be covered as well */
-		waste += offset - hole->offset;
+		waste = offset - hole->offset;
 		if (offset >= (hole->offset + hole->size)) {
 			continue;
 		}
 
+		if (offset + size > range_max) {
+			continue;
+		}
+
 		if (!waste && hole->size == size) {
 			offset = hole->offset;
 			list_del(&hole->list);
-- 
2.7.4