WARNING: at drivers/gpu/drm/radeon/radeon_object.c:236

Michel Dänzer michel at daenzer.net
Tue Mar 27 01:20:21 PDT 2012


On Die, 2012-03-27 at 17:21 +1100, Benjamin Herrenschmidt wrote:
>         On Mon, 2012-03-26 at 17:32 -0400, Dave Jones wrote:
>         > Seeing this in Linus' tree as of v3.3-6972-ge22057c
>         
>         Same WARN_ON hit here on a G5 with rv350

Thanks for the report, guys. Does the patch below help?


diff --git a/drivers/gpu/drm/radeon/radeon_object.c b/drivers/gpu/drm/radeon/radeon_object.c
index f441d58..ad9d450 100644
--- a/drivers/gpu/drm/radeon/radeon_object.c
+++ b/drivers/gpu/drm/radeon/radeon_object.c
@@ -233,7 +233,17 @@ int radeon_bo_pin_restricted(struct radeon_bo *bo, u32 domain, u64 max_offset,
 		bo->pin_count++;
 		if (gpu_addr)
 			*gpu_addr = radeon_bo_gpu_offset(bo);
-		WARN_ON_ONCE(max_offset != 0);
+
+		if (max_offset != 0) {
+			u64 domain_start;
+
+			if (domain == RADEON_GEM_DOMAIN_VRAM)
+				domain_start = bo->rdev->mc.vram_start;
+			else
+				domain_start = bo->rdev->mc.gtt_start;
+			WARN_ON_ONCE((*gpu_addr - domain_start) > max_offset);
+		}
+
 		return 0;
 	}
 	radeon_ttm_placement_from_domain(bo, domain);


-- 
Earthling Michel Dänzer           |                   http://www.amd.com
Libre software enthusiast         |          Debian, X and DRI developer


More information about the dri-devel mailing list