|
@@ -26,8 +26,6 @@
|
|
|
* and timing control which (together with bit 0) are moved into the
|
|
|
* old-style PTEA on the parts that support it.
|
|
|
*
|
|
|
- * XXX: Leave the _PAGE_FILE and _PAGE_WT overhaul for a rainy day.
|
|
|
- *
|
|
|
* SH-X2 MMUs and extended PTEs
|
|
|
*
|
|
|
* SH-X2 supports an extended mode TLB with split data arrays due to the
|
|
@@ -51,7 +49,6 @@
|
|
|
#define _PAGE_PRESENT 0x100 /* V-bit : page is valid */
|
|
|
#define _PAGE_PROTNONE 0x200 /* software: if not present */
|
|
|
#define _PAGE_ACCESSED 0x400 /* software: page referenced */
|
|
|
-#define _PAGE_FILE _PAGE_WT /* software: pagecache or swap? */
|
|
|
#define _PAGE_SPECIAL 0x800 /* software: special page */
|
|
|
|
|
|
#define _PAGE_SZ_MASK (_PAGE_SZ0 | _PAGE_SZ1)
|
|
@@ -105,14 +102,13 @@ static inline unsigned long copy_ptea_attributes(unsigned long x)
|
|
|
/* Mask which drops unused bits from the PTEL value */
|
|
|
#if defined(CONFIG_CPU_SH3)
|
|
|
#define _PAGE_CLEAR_FLAGS (_PAGE_PROTNONE | _PAGE_ACCESSED| \
|
|
|
- _PAGE_FILE | _PAGE_SZ1 | \
|
|
|
- _PAGE_HW_SHARED)
|
|
|
+ _PAGE_SZ1 | _PAGE_HW_SHARED)
|
|
|
#elif defined(CONFIG_X2TLB)
|
|
|
/* Get rid of the legacy PR/SZ bits when using extended mode */
|
|
|
#define _PAGE_CLEAR_FLAGS (_PAGE_PROTNONE | _PAGE_ACCESSED | \
|
|
|
- _PAGE_FILE | _PAGE_PR_MASK | _PAGE_SZ_MASK)
|
|
|
+ _PAGE_PR_MASK | _PAGE_SZ_MASK)
|
|
|
#else
|
|
|
-#define _PAGE_CLEAR_FLAGS (_PAGE_PROTNONE | _PAGE_ACCESSED | _PAGE_FILE)
|
|
|
+#define _PAGE_CLEAR_FLAGS (_PAGE_PROTNONE | _PAGE_ACCESSED)
|
|
|
#endif
|
|
|
|
|
|
#define _PAGE_FLAGS_HARDWARE_MASK (phys_addr_mask() & ~(_PAGE_CLEAR_FLAGS))
|
|
@@ -343,7 +339,6 @@ static inline void set_pte(pte_t *ptep, pte_t pte)
|
|
|
#define pte_not_present(pte) (!((pte).pte_low & _PAGE_PRESENT))
|
|
|
#define pte_dirty(pte) ((pte).pte_low & _PAGE_DIRTY)
|
|
|
#define pte_young(pte) ((pte).pte_low & _PAGE_ACCESSED)
|
|
|
-#define pte_file(pte) ((pte).pte_low & _PAGE_FILE)
|
|
|
#define pte_special(pte) ((pte).pte_low & _PAGE_SPECIAL)
|
|
|
|
|
|
#ifdef CONFIG_X2TLB
|
|
@@ -445,7 +440,6 @@ static inline pte_t pte_modify(pte_t pte, pgprot_t newprot)
|
|
|
* Encode and de-code a swap entry
|
|
|
*
|
|
|
* Constraints:
|
|
|
- * _PAGE_FILE at bit 0
|
|
|
* _PAGE_PRESENT at bit 8
|
|
|
* _PAGE_PROTNONE at bit 9
|
|
|
*
|
|
@@ -453,9 +447,7 @@ static inline pte_t pte_modify(pte_t pte, pgprot_t newprot)
|
|
|
* swap offset into bits 10:30. For the 64-bit PTE case, we keep the
|
|
|
* preserved bits in the low 32-bits and use the upper 32 as the swap
|
|
|
* offset (along with a 5-bit type), following the same approach as x86
|
|
|
- * PAE. This keeps the logic quite simple, and allows for a full 32
|
|
|
- * PTE_FILE_MAX_BITS, as opposed to the 29-bits we're constrained with
|
|
|
- * in the pte_low case.
|
|
|
+ * PAE. This keeps the logic quite simple.
|
|
|
*
|
|
|
* As is evident by the Alpha code, if we ever get a 64-bit unsigned
|
|
|
* long (swp_entry_t) to match up with the 64-bit PTEs, this all becomes
|
|
@@ -471,13 +463,6 @@ static inline pte_t pte_modify(pte_t pte, pgprot_t newprot)
|
|
|
#define __pte_to_swp_entry(pte) ((swp_entry_t){ (pte).pte_high })
|
|
|
#define __swp_entry_to_pte(x) ((pte_t){ 0, (x).val })
|
|
|
|
|
|
-/*
|
|
|
- * Encode and decode a nonlinear file mapping entry
|
|
|
- */
|
|
|
-#define pte_to_pgoff(pte) ((pte).pte_high)
|
|
|
-#define pgoff_to_pte(off) ((pte_t) { _PAGE_FILE, (off) })
|
|
|
-
|
|
|
-#define PTE_FILE_MAX_BITS 32
|
|
|
#else
|
|
|
#define __swp_type(x) ((x).val & 0xff)
|
|
|
#define __swp_offset(x) ((x).val >> 10)
|
|
@@ -485,13 +470,6 @@ static inline pte_t pte_modify(pte_t pte, pgprot_t newprot)
|
|
|
|
|
|
#define __pte_to_swp_entry(pte) ((swp_entry_t) { pte_val(pte) >> 1 })
|
|
|
#define __swp_entry_to_pte(x) ((pte_t) { (x).val << 1 })
|
|
|
-
|
|
|
-/*
|
|
|
- * Encode and decode a nonlinear file mapping entry
|
|
|
- */
|
|
|
-#define PTE_FILE_MAX_BITS 29
|
|
|
-#define pte_to_pgoff(pte) (pte_val(pte) >> 1)
|
|
|
-#define pgoff_to_pte(off) ((pte_t) { ((off) << 1) | _PAGE_FILE })
|
|
|
#endif
|
|
|
|
|
|
#endif /* __ASSEMBLY__ */
|