]> git.baikalelectronics.ru Git - kernel.git/commit
mm/memory.c: add apply_to_existing_page_range() helper
authorDaniel Axtens <dja@axtens.net>
Wed, 18 Dec 2019 04:51:41 +0000 (20:51 -0800)
committerLinus Torvalds <torvalds@linux-foundation.org>
Wed, 18 Dec 2019 04:59:59 +0000 (20:59 -0800)
commit5c49d1a3ffa30bc6808776d8a7d1db6651d2fd3c
tree02d741cc1f8bd9f5f3bd29aef27c7ad62ea8eba4
parent157e88475024e836b21f060c974d0bc7c4a36745
mm/memory.c: add apply_to_existing_page_range() helper

apply_to_page_range() takes an address range, and if any parts of it are
not covered by the existing page table hierarchy, it allocates memory to
fill them in.

In some use cases, this is not what we want - we want to be able to
operate exclusively on PTEs that are already in the tables.

Add apply_to_existing_page_range() for this.  Adjust the walker
functions for apply_to_page_range to take 'create', which switches them
between the old and new modes.

This will be used in KASAN vmalloc.

[akpm@linux-foundation.org: reduce code duplication]
[akpm@linux-foundation.org: s/apply_to_existing_pages/apply_to_existing_page_range/]
[akpm@linux-foundation.org: initialize __apply_to_page_range::err]
Link: http://lkml.kernel.org/r/20191205140407.1874-1-dja@axtens.net
Signed-off-by: Daniel Axtens <dja@axtens.net>
Cc: Dmitry Vyukov <dvyukov@google.com>
Cc: Uladzislau Rezki (Sony) <urezki@gmail.com>
Cc: Alexander Potapenko <glider@google.com>
Cc: Daniel Axtens <dja@axtens.net>
Cc: Qian Cai <cai@lca.pw>
Cc: Andrey Ryabinin <aryabinin@virtuozzo.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
include/linux/mm.h
mm/memory.c