diff --git a/include/linux/mm.h b/include/linux/mm.h index efbe0eebdcda..e108b03f536a 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h @@ -4114,23 +4114,26 @@ mapping_rmap_tree_iter_next(struct vm_area_struct *vma, vma; vma = mapping_rmap_tree_iter_next(vma, pgoff_start, \ pgoff_last)) -void anon_vma_interval_tree_insert(struct anon_vma_chain *node, +void anon_vma_interval_tree_insert(struct anon_vma_chain *avc, struct anon_vma *anon_vma); -void anon_vma_interval_tree_remove(struct anon_vma_chain *node, +void anon_vma_interval_tree_remove(struct anon_vma_chain *avc, struct anon_vma *anon_vma); + struct anon_vma_chain * anon_vma_interval_tree_iter_first(struct anon_vma *anon_vma, - unsigned long start, unsigned long last); + pgoff_t pgoff_start, pgoff_t pgoff_last); struct anon_vma_chain * anon_vma_interval_tree_iter_next(struct anon_vma_chain *avc, - unsigned long start, unsigned long last); + pgoff_t pgoff_start, pgoff_t pgoff_last); #ifdef CONFIG_DEBUG_VM_RB -void anon_vma_interval_tree_verify(struct anon_vma_chain *node); +void anon_vma_interval_tree_verify(struct anon_vma_chain *avc); #endif -#define anon_vma_interval_tree_foreach(avc, root, start, last) \ - for (avc = anon_vma_interval_tree_iter_first(root, start, last); \ - avc; avc = anon_vma_interval_tree_iter_next(avc, start, last)) +#define anon_vma_interval_tree_foreach(avc, anon_vma, pgoff_start, pgoff_last) \ + for (avc = anon_vma_interval_tree_iter_first(anon_vma, pgoff_start, \ + pgoff_last); \ + avc; avc = anon_vma_interval_tree_iter_next(avc, pgoff_start, \ + pgoff_last)) /* mmap.c */ extern int __vm_enough_memory(const struct mm_struct *mm, long pages, int cap_sys_admin); diff --git a/mm/interval_tree.c b/mm/interval_tree.c index b82d2a0d9c4e..5bfe95b5cd28 100644 --- a/mm/interval_tree.c +++ b/mm/interval_tree.c @@ -81,55 +81,55 @@ mapping_rmap_tree_iter_next(struct vm_area_struct *vma, /* Anonymous interval tree (anon_vma->rb_root) */ -static unsigned long avc_start_pgoff(struct anon_vma_chain *avc) +static pgoff_t avc_start_pgoff(struct anon_vma_chain *avc) { return vma_start_pgoff(avc->vma); } -static unsigned long avc_last_pgoff(struct anon_vma_chain *avc) +static pgoff_t avc_last_pgoff(struct anon_vma_chain *avc) { return vma_last_pgoff(avc->vma); } -INTERVAL_TREE_DEFINE(struct anon_vma_chain, rb, unsigned long, rb_subtree_last, +INTERVAL_TREE_DEFINE(struct anon_vma_chain, rb, pgoff_t, rb_subtree_last, avc_start_pgoff, avc_last_pgoff, static, __anon_vma_interval_tree) -void anon_vma_interval_tree_insert(struct anon_vma_chain *node, +void anon_vma_interval_tree_insert(struct anon_vma_chain *avc, struct anon_vma *anon_vma) { #ifdef CONFIG_DEBUG_VM_RB - node->cached_vma_start = avc_start_pgoff(node); - node->cached_vma_last = avc_last_pgoff(node); + avc->cached_vma_start = avc_start_pgoff(avc); + avc->cached_vma_last = avc_last_pgoff(avc); #endif - __anon_vma_interval_tree_insert(node, &anon_vma->rb_root); + __anon_vma_interval_tree_insert(avc, &anon_vma->rb_root); } -void anon_vma_interval_tree_remove(struct anon_vma_chain *node, +void anon_vma_interval_tree_remove(struct anon_vma_chain *avc, struct anon_vma *anon_vma) { - __anon_vma_interval_tree_remove(node, &anon_vma->rb_root); + __anon_vma_interval_tree_remove(avc, &anon_vma->rb_root); } struct anon_vma_chain * anon_vma_interval_tree_iter_first(struct anon_vma *anon_vma, - unsigned long first, unsigned long last) + pgoff_t pgoff_start, pgoff_t pgoff_last) { return __anon_vma_interval_tree_iter_first(&anon_vma->rb_root, - first, last); + pgoff_start, pgoff_last); } struct anon_vma_chain * -anon_vma_interval_tree_iter_next(struct anon_vma_chain *node, - unsigned long first, unsigned long last) +anon_vma_interval_tree_iter_next(struct anon_vma_chain *avc, + pgoff_t pgoff_start, pgoff_t pgoff_last) { - return __anon_vma_interval_tree_iter_next(node, first, last); + return __anon_vma_interval_tree_iter_next(avc, pgoff_start, pgoff_last); } #ifdef CONFIG_DEBUG_VM_RB -void anon_vma_interval_tree_verify(struct anon_vma_chain *node) +void anon_vma_interval_tree_verify(struct anon_vma_chain *avc) { - WARN_ON_ONCE(node->cached_vma_start != avc_start_pgoff(node)); - WARN_ON_ONCE(node->cached_vma_last != avc_last_pgoff(node)); + WARN_ON_ONCE(avc->cached_vma_start != avc_start_pgoff(avc)); + WARN_ON_ONCE(avc->cached_vma_last != avc_last_pgoff(avc)); } #endif