forked from luck/tmp_suning_uos_patched
mm/mmap.c: refine find_vma_prev() with rb_last()
When addr is out of range of the whole rb_tree, pprev will point to the right-most node. rb_tree facility already provides a helper function, rb_last(), to do this task. We can leverage this instead of reimplementing it. This patch refines find_vma_prev() with rb_last() to make it a little nicer to read. [akpm@linux-foundation.org: little cleanup, per Vlastimil] Link: http://lkml.kernel.org/r/20190809001928.4950-1-richardw.yang@linux.intel.com Signed-off-by: Wei Yang <richardw.yang@linux.intel.com> Acked-by: Vlastimil Babka <vbabka@suse.cz> Cc: Michal Hocko <mhocko@suse.com> Cc: Kirill A. Shutemov <kirill.shutemov@linux.intel.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
54c95a11cc
commit
73848a9711
|
@ -2274,12 +2274,9 @@ find_vma_prev(struct mm_struct *mm, unsigned long addr,
|
|||
if (vma) {
|
||||
*pprev = vma->vm_prev;
|
||||
} else {
|
||||
struct rb_node *rb_node = mm->mm_rb.rb_node;
|
||||
*pprev = NULL;
|
||||
while (rb_node) {
|
||||
*pprev = rb_entry(rb_node, struct vm_area_struct, vm_rb);
|
||||
rb_node = rb_node->rb_right;
|
||||
}
|
||||
struct rb_node *rb_node = rb_last(&mm->mm_rb);
|
||||
|
||||
*pprev = rb_node ? rb_entry(rb_node, struct vm_area_struct, vm_rb) : NULL;
|
||||
}
|
||||
return vma;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue
Block a user