arm: mm: add missing pieces for CONFIG_FREE_PAGES_RDONLY

CONFIG_FREE_PAGES_RDONLY, which marks freed kernel pages
as read-only missed the Kconfig and an interface to mark
pages as read-only for 32 bit system. Add them.

Change-Id: Ibb5020a44323fb50febd66e16ca448da8ecb352c
Signed-off-by: Shiraz Hashim <shashim@codeaurora.org>
This commit is contained in:
Shiraz Hashim 2017-02-07 06:54:35 +05:30
parent 154827ce27
commit f7abb9acbd
2 changed files with 21 additions and 0 deletions

View file

@ -86,6 +86,18 @@ config FORCE_PAGES
If unsure say N.
config FREE_PAGES_RDONLY
bool "Set pages as read only while on the buddy list"
select FORCE_PAGES
select PAGE_POISONING
help
Pages are always mapped in the kernel. This means that anyone
can write to the page if they have the address. Enable this option
to mark pages as read only to trigger a fault if any code attempts
to write to a page on the buddy list. This may have a performance
impact.
If unsure, say N.
# These options are only for real kernel hackers who want to get their hands dirty.
config DEBUG_LL

View file

@ -539,4 +539,13 @@ static inline void secure_flush_area(const void *addr, size_t size)
outer_flush_range(phys, phys + size);
}
#ifdef CONFIG_FREE_PAGES_RDONLY
#define mark_addr_rdonly(a) set_memory_ro((unsigned long)a, 1)
#define mark_addr_rdwrite(a) set_memory_rw((unsigned long)a, 1)
#else
#define mark_addr_rdonly(a)
#define mark_addr_rdwrite(a)
#endif
#endif