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:
parent
154827ce27
commit
f7abb9acbd
2 changed files with 21 additions and 0 deletions
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Add table
Reference in a new issue