mm: optimize find_exact_vma() to use vma_lookup()
Use vma_lookup() to walk the tree to the start value requested. If the vma at the start does not match, then the answer is NULL and there is no need to look at the next vma the way that find_vma() would. Link: https://lkml.kernel.org/r/20220906194824.2110408-21-Liam.Howlett@oracle.com Signed-off-by: Liam R. Howlett <Liam.Howlett@Oracle.com> Reviewed-by: Vlastimil Babka <vbabka@suse.cz> Tested-by: Yu Zhao <yuzhao@google.com> Cc: Catalin Marinas <catalin.marinas@arm.com> Cc: David Hildenbrand <david@redhat.com> Cc: David Howells <dhowells@redhat.com> Cc: Davidlohr Bueso <dave@stgolabs.net> Cc: "Matthew Wilcox (Oracle)" <willy@infradead.org> Cc: SeongJae Park <sj@kernel.org> Cc: Sven Schnelle <svens@linux.ibm.com> Cc: Will Deacon <will@kernel.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
This commit is contained in:
parent
7ccf089b26
commit
dc8635b25e
@ -2850,7 +2850,7 @@ static inline unsigned long vma_pages(struct vm_area_struct *vma)
|
||||
static inline struct vm_area_struct *find_exact_vma(struct mm_struct *mm,
|
||||
unsigned long vm_start, unsigned long vm_end)
|
||||
{
|
||||
struct vm_area_struct *vma = find_vma(mm, vm_start);
|
||||
struct vm_area_struct *vma = vma_lookup(mm, vm_start);
|
||||
|
||||
if (vma && (vma->vm_start != vm_start || vma->vm_end != vm_end))
|
||||
vma = NULL;
|
||||
|
Loading…
Reference in New Issue
Block a user