Commit dd794392 authored by David Daney's avatar David Daney Committed by Ralf Baechle

MIPS: Add hugetlbfs page defines.

Signed-off-by: default avatarDavid Daney <ddaney@caviumnetworks.com>
Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
parent 50a41ff2
...@@ -220,6 +220,22 @@ ...@@ -220,6 +220,22 @@
#error Bad page size configuration! #error Bad page size configuration!
#endif #endif
/*
* Default huge tlb size for a given kernel configuration
*/
#ifdef CONFIG_PAGE_SIZE_4KB
#define PM_HUGE_MASK PM_1M
#elif defined(CONFIG_PAGE_SIZE_8KB)
#define PM_HUGE_MASK PM_4M
#elif defined(CONFIG_PAGE_SIZE_16KB)
#define PM_HUGE_MASK PM_16M
#elif defined(CONFIG_PAGE_SIZE_32KB)
#define PM_HUGE_MASK PM_64M
#elif defined(CONFIG_PAGE_SIZE_64KB)
#define PM_HUGE_MASK PM_256M
#elif defined(CONFIG_HUGETLB_PAGE)
#error Bad page size configuration for hugetlbfs!
#endif
/* /*
* Values used for computation of new tlb entries * Values used for computation of new tlb entries
......
...@@ -32,6 +32,11 @@ ...@@ -32,6 +32,11 @@
#define PAGE_SIZE (1UL << PAGE_SHIFT) #define PAGE_SIZE (1UL << PAGE_SHIFT)
#define PAGE_MASK (~((1 << PAGE_SHIFT) - 1)) #define PAGE_MASK (~((1 << PAGE_SHIFT) - 1))
#define HPAGE_SHIFT (PAGE_SHIFT + PAGE_SHIFT - 3)
#define HPAGE_SIZE ((1UL) << HPAGE_SHIFT)
#define HPAGE_MASK (~(HPAGE_SIZE - 1))
#define HUGETLB_PAGE_ORDER (HPAGE_SHIFT - PAGE_SHIFT)
#ifndef __ASSEMBLY__ #ifndef __ASSEMBLY__
#include <linux/pfn.h> #include <linux/pfn.h>
......
...@@ -72,6 +72,7 @@ ...@@ -72,6 +72,7 @@
#else #else
#define _PAGE_R4KBUG (1<<5) /* workaround for r4k bug */ #define _PAGE_R4KBUG (1<<5) /* workaround for r4k bug */
#define _PAGE_HUGE (1<<5) /* huge tlb page */
#define _PAGE_GLOBAL (1<<6) #define _PAGE_GLOBAL (1<<6)
#define _PAGE_VALID (1<<7) #define _PAGE_VALID (1<<7)
#define _PAGE_SILENT_READ (1<<7) /* synonym */ #define _PAGE_SILENT_READ (1<<7) /* synonym */
......
...@@ -292,6 +292,16 @@ static inline pte_t pte_mkyoung(pte_t pte) ...@@ -292,6 +292,16 @@ static inline pte_t pte_mkyoung(pte_t pte)
pte_val(pte) |= _PAGE_SILENT_READ; pte_val(pte) |= _PAGE_SILENT_READ;
return pte; return pte;
} }
#ifdef _PAGE_HUGE
static inline int pte_huge(pte_t pte) { return pte_val(pte) & _PAGE_HUGE; }
static inline pte_t pte_mkhuge(pte_t pte)
{
pte_val(pte) |= _PAGE_HUGE;
return pte;
}
#endif /* _PAGE_HUGE */
#endif #endif
static inline int pte_special(pte_t pte) { return 0; } static inline int pte_special(pte_t pte) { return 0; }
static inline pte_t pte_mkspecial(pte_t pte) { return pte; } static inline pte_t pte_mkspecial(pte_t pte) { return pte; }
......
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