summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTong Tiangen <tongtiangen@huawei.com>2022-10-24 12:47:25 +0300
committerPalmer Dabbelt <palmer@rivosinc.com>2022-12-02 22:26:02 +0300
commitd8bf77a1dc3079692f54be3087a5fd16d90027b0 (patch)
tree2f7724e6b556a392ce06a54913cc0e00d44cd878
parentd33deda095d3637d218e7eed441633b2a01e1413 (diff)
downloadlinux-d8bf77a1dc3079692f54be3087a5fd16d90027b0.tar.xz
riscv/mm: add arch hook arch_clear_hugepage_flags
With the PG_arch_1 we keep track if the page's data cache is clean, architecture rely on this property to treat new pages as dirty with respect to the data cache and perform the flushing before mapping the pages into userspace. This patch adds a new architecture hook, arch_clear_hugepage_flags,so that architectures which rely on the page flags being in a particular state for fresh allocations can adjust the flags accordingly when a page is freed into the pool. Fixes: 9e953cda5cdf ("riscv: Introduce huge page support for 32/64bit kernel") Signed-off-by: Tong Tiangen <tongtiangen@huawei.com> Link: https://lore.kernel.org/r/20221024094725.3054311-3-tongtiangen@huawei.com Signed-off-by: Palmer Dabbelt <palmer@rivosinc.com>
-rw-r--r--arch/riscv/include/asm/hugetlb.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/arch/riscv/include/asm/hugetlb.h b/arch/riscv/include/asm/hugetlb.h
index a5c2ca1d1cd8..ec19d6afc896 100644
--- a/arch/riscv/include/asm/hugetlb.h
+++ b/arch/riscv/include/asm/hugetlb.h
@@ -5,4 +5,10 @@
#include <asm-generic/hugetlb.h>
#include <asm/page.h>
+static inline void arch_clear_hugepage_flags(struct page *page)
+{
+ clear_bit(PG_dcache_clean, &page->flags);
+}
+#define arch_clear_hugepage_flags arch_clear_hugepage_flags
+
#endif /* _ASM_RISCV_HUGETLB_H */