]> git.proxmox.com Git - mirror_ubuntu-jammy-kernel.git/commitdiff
drm/mm: remove invalid entry based optimization
authorChristian König <christian.koenig@amd.com>
Mon, 8 Jun 2020 13:41:58 +0000 (15:41 +0200)
committerChristian König <christian.koenig@amd.com>
Mon, 15 Jun 2020 08:51:18 +0000 (10:51 +0200)
When the current entry is rejected as candidate for the search
it does not mean that we can abort the subtree search.

It is perfectly possible that only the alignment, but not the
size is the reason for the rejection.

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

index 60e9a9c91e9d90a241731706134f6fd9cf2a4f1f..82d2888eb7febd3bca3bef68aa625d4216a96a93 100644 (file)
@@ -406,8 +406,7 @@ next_hole_high_addr(struct drm_mm_node *entry, u64 size)
                parent_rb_node = rb_parent(rb_node);
                left_node = rb_entry(left_rb_node,
                                     struct drm_mm_node, rb_hole_addr);
-               if ((left_node->subtree_max_hole < size ||
-                    HOLE_SIZE(entry) == entry->subtree_max_hole) &&
+               if (left_node->subtree_max_hole < size &&
                    parent_rb_node && parent_rb_node->rb_left != rb_node)
                        return rb_hole_addr_to_node(parent_rb_node);
        }
@@ -446,8 +445,7 @@ next_hole_low_addr(struct drm_mm_node *entry, u64 size)
                parent_rb_node = rb_parent(rb_node);
                right_node = rb_entry(right_rb_node,
                                      struct drm_mm_node, rb_hole_addr);
-               if ((right_node->subtree_max_hole < size ||
-                    HOLE_SIZE(entry) == entry->subtree_max_hole) &&
+               if (right_node->subtree_max_hole < size &&
                    parent_rb_node && parent_rb_node->rb_right != rb_node)
                        return rb_hole_addr_to_node(parent_rb_node);
        }