blob: ae4de7b8921034baa3dc06a59c5835d856ca38b8 [file] [log] [blame]
Andrew Scullb4b6d4a2019-01-02 15:54:55 +00001/* SPDX-License-Identifier: GPL-2.0 */
2#ifndef _ASM_SH_HUGETLB_H
3#define _ASM_SH_HUGETLB_H
4
5#include <asm/cacheflush.h>
6#include <asm/page.h>
Andrew Scullb4b6d4a2019-01-02 15:54:55 +00007
Andrew Scullb4b6d4a2019-01-02 15:54:55 +00008/*
9 * If the arch doesn't supply something else, assume that hugepage
10 * size aligned regions are ok without further preparation.
11 */
David Brazdil0f672f62019-12-10 10:32:29 +000012#define __HAVE_ARCH_PREPARE_HUGEPAGE_RANGE
Andrew Scullb4b6d4a2019-01-02 15:54:55 +000013static inline int prepare_hugepage_range(struct file *file,
14 unsigned long addr, unsigned long len)
15{
16 if (len & ~HPAGE_MASK)
17 return -EINVAL;
18 if (addr & ~HPAGE_MASK)
19 return -EINVAL;
20 return 0;
21}
22
David Brazdil0f672f62019-12-10 10:32:29 +000023#define __HAVE_ARCH_HUGE_PTEP_CLEAR_FLUSH
Andrew Scullb4b6d4a2019-01-02 15:54:55 +000024static inline void huge_ptep_clear_flush(struct vm_area_struct *vma,
25 unsigned long addr, pte_t *ptep)
26{
27}
28
Andrew Scullb4b6d4a2019-01-02 15:54:55 +000029static inline void arch_clear_hugepage_flags(struct page *page)
30{
31 clear_bit(PG_dcache_clean, &page->flags);
32}
Olivier Deprez157378f2022-04-04 15:47:50 +020033#define arch_clear_hugepage_flags arch_clear_hugepage_flags
Andrew Scullb4b6d4a2019-01-02 15:54:55 +000034
David Brazdil0f672f62019-12-10 10:32:29 +000035#include <asm-generic/hugetlb.h>
36
Andrew Scullb4b6d4a2019-01-02 15:54:55 +000037#endif /* _ASM_SH_HUGETLB_H */