summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMika Penttilä <mika.penttila@nextfour.com>2016-03-15 21:56:45 (GMT)
committerLinus Torvalds <torvalds@linux-foundation.org>2016-03-15 23:55:16 (GMT)
commit9cb65bc3b1114004e2ccee5939031325c7bf16e8 (patch)
tree9bf1f9abfb604f6d98bf9b8a641a5b8d6733fc53
parent4355c018c2ba8017592520573e76ad376ad656db (diff)
downloadlinux-9cb65bc3b1114004e2ccee5939031325c7bf16e8.tar.xz
mm/memory.c: make apply_to_page_range() more robust
Arm and arm64 used to trigger this BUG_ON() - this has now been fixed. But a WARN_ON() here is sufficient to catch future buggy callers. Signed-off-by: Mika Penttilä <mika.penttila@nextfour.com> Reviewed-by: Pekka Enberg <penberg@kernel.org> Acked-by: David Rientjes <rientjes@google.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-rw-r--r--mm/memory.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/mm/memory.c b/mm/memory.c
index 8132787..8adb5b7 100644
--- a/mm/memory.c
+++ b/mm/memory.c
@@ -1876,7 +1876,9 @@ int apply_to_page_range(struct mm_struct *mm, unsigned long addr,
unsigned long end = addr + size;
int err;
- BUG_ON(addr >= end);
+ if (WARN_ON(addr >= end))
+ return -EINVAL;
+
pgd = pgd_offset(mm, addr);
do {
next = pgd_addr_end(addr, end);