aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/gpu/drm/drm_mm.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/drivers/gpu/drm/drm_mm.c b/drivers/gpu/drm/drm_mm.c
index 8f64be44bfe7..71e2d3fcd6ee 100644
--- a/drivers/gpu/drm/drm_mm.c
+++ b/drivers/gpu/drm/drm_mm.c
@@ -423,6 +423,8 @@ static struct drm_mm_node *drm_mm_search_free_generic(const struct drm_mm *mm,
423 423
424 __drm_mm_for_each_hole(entry, mm, adj_start, adj_end, 424 __drm_mm_for_each_hole(entry, mm, adj_start, adj_end,
425 flags & DRM_MM_SEARCH_BELOW) { 425 flags & DRM_MM_SEARCH_BELOW) {
426 unsigned long hole_size = adj_end - adj_start;
427
426 if (mm->color_adjust) { 428 if (mm->color_adjust) {
427 mm->color_adjust(entry, color, &adj_start, &adj_end); 429 mm->color_adjust(entry, color, &adj_start, &adj_end);
428 if (adj_end <= adj_start) 430 if (adj_end <= adj_start)
@@ -435,9 +437,9 @@ static struct drm_mm_node *drm_mm_search_free_generic(const struct drm_mm *mm,
435 if (!(flags & DRM_MM_SEARCH_BEST)) 437 if (!(flags & DRM_MM_SEARCH_BEST))
436 return entry; 438 return entry;
437 439
438 if (entry->size < best_size) { 440 if (hole_size < best_size) {
439 best = entry; 441 best = entry;
440 best_size = entry->size; 442 best_size = hole_size;
441 } 443 }
442 } 444 }
443 445
@@ -465,6 +467,8 @@ static struct drm_mm_node *drm_mm_search_free_in_range_generic(const struct drm_
465 467
466 __drm_mm_for_each_hole(entry, mm, adj_start, adj_end, 468 __drm_mm_for_each_hole(entry, mm, adj_start, adj_end,
467 flags & DRM_MM_SEARCH_BELOW) { 469 flags & DRM_MM_SEARCH_BELOW) {
470 unsigned long hole_size = adj_end - adj_start;
471
468 if (adj_start < start) 472 if (adj_start < start)
469 adj_start = start; 473 adj_start = start;
470 if (adj_end > end) 474 if (adj_end > end)
@@ -482,9 +486,9 @@ static struct drm_mm_node *drm_mm_search_free_in_range_generic(const struct drm_
482 if (!(flags & DRM_MM_SEARCH_BEST)) 486 if (!(flags & DRM_MM_SEARCH_BEST))
483 return entry; 487 return entry;
484 488
485 if (entry->size < best_size) { 489 if (hole_size < best_size) {
486 best = entry; 490 best = entry;
487 best_size = entry->size; 491 best_size = hole_size;
488 } 492 }
489 } 493 }
490 494