DragonFlyBSD Kernel Audit
DF-2014 / fix.diff
← back to finding ↓ download raw
diff --git a/sys/dev/drm/radeon/radeon_gart.c b/sys/dev/drm/radeon/radeon_gart.c
--- a/sys/dev/drm/radeon/radeon_gart.c
+++ b/sys/dev/drm/radeon/radeon_gart.c
@@ -251,10 +251,10 @@
 	}
 	t = offset / RADEON_GPU_PAGE_SIZE;
 	p = t / (PAGE_SIZE / RADEON_GPU_PAGE_SIZE);
-	for (i = 0; i < pages; i++, p++) {
+	for (i = 0; i < pages; i++, p++, t += (PAGE_SIZE / RADEON_GPU_PAGE_SIZE)) {
 		if (rdev->gart.pages[p]) {
 			rdev->gart.pages[p] = NULL;
-			for (j = 0; j < (PAGE_SIZE / RADEON_GPU_PAGE_SIZE); j++, t++) {
+			for (j = 0; j < (PAGE_SIZE / RADEON_GPU_PAGE_SIZE); j++) {
 				rdev->gart.pages_entry[t] = rdev->dummy_page.entry;
 				if (rdev->gart.ptr) {
 					radeon_gart_set_page(rdev, t,