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.
|
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.
|
# These options are only for real kernel hackers who want to get their hands dirty.
|
||||||
config DEBUG_LL
|
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);
|
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
|
#endif
|
||||||
|
|
Loading…
Add table
Reference in a new issue