Commit 5fde3db5 authored by Zong Li's avatar Zong Li Committed by Palmer Dabbelt

riscv: add ARCH_SUPPORTS_DEBUG_PAGEALLOC support

ARCH_SUPPORTS_DEBUG_PAGEALLOC provides a hook to map and unmap
pages for debugging purposes. Implement the __kernel_map_pages
functions to fill the poison pattern.
Signed-off-by: default avatarZong Li <zong.li@sifive.com>
Signed-off-by: default avatarPalmer Dabbelt <palmerdabbelt@google.com>
parent 395a21ff
...@@ -131,6 +131,9 @@ config ARCH_SELECT_MEMORY_MODEL ...@@ -131,6 +131,9 @@ config ARCH_SELECT_MEMORY_MODEL
config ARCH_WANT_GENERAL_HUGETLB config ARCH_WANT_GENERAL_HUGETLB
def_bool y def_bool y
config ARCH_SUPPORTS_DEBUG_PAGEALLOC
def_bool y
config SYS_SUPPORTS_HUGETLBFS config SYS_SUPPORTS_HUGETLBFS
def_bool y def_bool y
......
...@@ -172,3 +172,16 @@ int set_direct_map_default_noflush(struct page *page) ...@@ -172,3 +172,16 @@ int set_direct_map_default_noflush(struct page *page)
return walk_page_range(&init_mm, start, end, &pageattr_ops, &masks); return walk_page_range(&init_mm, start, end, &pageattr_ops, &masks);
} }
void __kernel_map_pages(struct page *page, int numpages, int enable)
{
if (!debug_pagealloc_enabled())
return;
if (enable)
__set_memory((unsigned long)page_address(page), numpages,
__pgprot(_PAGE_PRESENT), __pgprot(0));
else
__set_memory((unsigned long)page_address(page), numpages,
__pgprot(0), __pgprot(_PAGE_PRESENT));
}
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment