#endif /* CONFIG_UNACCEPTED_MEMORY */
/* pagewalk.c */
-int walk_page_range_mm(struct mm_struct *mm, unsigned long start,
+int walk_page_range_mm_unsafe(struct mm_struct *mm, unsigned long start,
unsigned long end, const struct mm_walk_ops *ops,
void *private);
int walk_page_range_debug(struct mm_struct *mm, unsigned long start,
unsigned long nr_pages = 0;
/* Returns < 0 on error, == 0 if success, > 0 if zap needed. */
- err = walk_page_range_mm(vma->vm_mm, range->start, range->end,
- &guard_install_walk_ops, &nr_pages);
+ err = walk_page_range_mm_unsafe(vma->vm_mm, range->start,
+ range->end, &guard_install_walk_ops, &nr_pages);
if (err < 0)
return err;
* We usually restrict the ability to install PTEs, but this functionality is
* available to internal memory management code and provided in mm/internal.h.
*/
-int walk_page_range_mm(struct mm_struct *mm, unsigned long start,
+int walk_page_range_mm_unsafe(struct mm_struct *mm, unsigned long start,
unsigned long end, const struct mm_walk_ops *ops,
void *private)
{
* This check is performed on all functions which are parameterised by walk
* operations and exposed in include/linux/pagewalk.h.
*
- * Internal memory management code can use the walk_page_range_mm() function to
- * be able to use all page walking operations.
+ * Internal memory management code can use *_unsafe() functions to be able to
+ * use all page walking operations.
*/
-static bool check_ops_valid(const struct mm_walk_ops *ops)
+static bool check_ops_safe(const struct mm_walk_ops *ops)
{
/*
* The installation of PTEs is solely under the control of memory
unsigned long end, const struct mm_walk_ops *ops,
void *private)
{
- if (!check_ops_valid(ops))
+ if (!check_ops_safe(ops))
return -EINVAL;
- return walk_page_range_mm(mm, start, end, ops, private);
+ return walk_page_range_mm_unsafe(mm, start, end, ops, private);
}
/**
if (start >= end)
return -EINVAL;
- if (!check_ops_valid(ops))
+ if (!check_ops_safe(ops))
return -EINVAL;
return walk_pgd_range(start, end, &walk);
pgd, private);
if (start >= end || !walk.mm)
return -EINVAL;
- if (!check_ops_valid(ops))
+ if (!check_ops_safe(ops))
return -EINVAL;
/*
return -EINVAL;
if (start < vma->vm_start || end > vma->vm_end)
return -EINVAL;
- if (!check_ops_valid(ops))
+ if (!check_ops_safe(ops))
return -EINVAL;
process_mm_walk_lock(walk.mm, ops->walk_lock);
if (!walk.mm)
return -EINVAL;
- if (!check_ops_valid(ops))
+ if (!check_ops_safe(ops))
return -EINVAL;
process_mm_walk_lock(walk.mm, ops->walk_lock);
unsigned long start_addr, end_addr;
int err = 0;
- if (!check_ops_valid(ops))
+ if (!check_ops_safe(ops))
return -EINVAL;
lockdep_assert_held(&mapping->i_mmap_rwsem);