OSDN Git Service

drm/mm: fix hole size comparison
authorNirmoy Das <nirmoy.aiemd@gmail.com>
Fri, 29 May 2020 14:04:01 +0000 (16:04 +0200)
committerChristian König <christian.koenig@amd.com>
Thu, 4 Jun 2020 07:57:22 +0000 (09:57 +0200)
Fixes: 0cdea4455acd350a ("drm/mm: optimize rb_hole_addr rbtree search")

Signed-off-by: Nirmoy Das <nirmoy.das@amd.com>
Reported-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Christian König <christian.koenig@amd.com>
Link: https://patchwork.freedesktop.org/patch/367726/
drivers/gpu/drm/drm_mm.c

index f4ca1ff..60e9a9c 100644 (file)
@@ -407,7 +407,7 @@ next_hole_high_addr(struct drm_mm_node *entry, u64 size)
                left_node = rb_entry(left_rb_node,
                                     struct drm_mm_node, rb_hole_addr);
                if ((left_node->subtree_max_hole < size ||
-                    entry->size == entry->subtree_max_hole) &&
+                    HOLE_SIZE(entry) == entry->subtree_max_hole) &&
                    parent_rb_node && parent_rb_node->rb_left != rb_node)
                        return rb_hole_addr_to_node(parent_rb_node);
        }
@@ -447,7 +447,7 @@ next_hole_low_addr(struct drm_mm_node *entry, u64 size)
                right_node = rb_entry(right_rb_node,
                                      struct drm_mm_node, rb_hole_addr);
                if ((right_node->subtree_max_hole < size ||
-                    entry->size == entry->subtree_max_hole) &&
+                    HOLE_SIZE(entry) == entry->subtree_max_hole) &&
                    parent_rb_node && parent_rb_node->rb_right != rb_node)
                        return rb_hole_addr_to_node(parent_rb_node);
        }