|
@@ -216,7 +216,6 @@ extern unsigned long MODULES_END;
|
|
*/
|
|
*/
|
|
|
|
|
|
/* Hardware bits in the page table entry */
|
|
/* Hardware bits in the page table entry */
|
|
-#define _PAGE_CO 0x100 /* HW Change-bit override */
|
|
|
|
#define _PAGE_PROTECT 0x200 /* HW read-only bit */
|
|
#define _PAGE_PROTECT 0x200 /* HW read-only bit */
|
|
#define _PAGE_INVALID 0x400 /* HW invalid bit */
|
|
#define _PAGE_INVALID 0x400 /* HW invalid bit */
|
|
#define _PAGE_LARGE 0x800 /* Bit to mark a large pte */
|
|
#define _PAGE_LARGE 0x800 /* Bit to mark a large pte */
|
|
@@ -233,8 +232,8 @@ extern unsigned long MODULES_END;
|
|
#define __HAVE_ARCH_PTE_SPECIAL
|
|
#define __HAVE_ARCH_PTE_SPECIAL
|
|
|
|
|
|
/* Set of bits not changed in pte_modify */
|
|
/* Set of bits not changed in pte_modify */
|
|
-#define _PAGE_CHG_MASK (PAGE_MASK | _PAGE_SPECIAL | _PAGE_CO | \
|
|
|
|
- _PAGE_DIRTY | _PAGE_YOUNG)
|
|
|
|
|
|
+#define _PAGE_CHG_MASK (PAGE_MASK | _PAGE_SPECIAL | _PAGE_DIRTY | \
|
|
|
|
+ _PAGE_YOUNG)
|
|
|
|
|
|
/*
|
|
/*
|
|
* handle_pte_fault uses pte_present, pte_none and pte_file to find out the
|
|
* handle_pte_fault uses pte_present, pte_none and pte_file to find out the
|
|
@@ -353,7 +352,6 @@ extern unsigned long MODULES_END;
|
|
|
|
|
|
#define _REGION3_ENTRY_LARGE 0x400 /* RTTE-format control, large page */
|
|
#define _REGION3_ENTRY_LARGE 0x400 /* RTTE-format control, large page */
|
|
#define _REGION3_ENTRY_RO 0x200 /* page protection bit */
|
|
#define _REGION3_ENTRY_RO 0x200 /* page protection bit */
|
|
-#define _REGION3_ENTRY_CO 0x100 /* change-recording override */
|
|
|
|
|
|
|
|
/* Bits in the segment table entry */
|
|
/* Bits in the segment table entry */
|
|
#define _SEGMENT_ENTRY_BITS 0xfffffffffffffe33UL
|
|
#define _SEGMENT_ENTRY_BITS 0xfffffffffffffe33UL
|
|
@@ -370,7 +368,6 @@ extern unsigned long MODULES_END;
|
|
#define _SEGMENT_ENTRY_YOUNG 0x1000 /* SW segment young bit */
|
|
#define _SEGMENT_ENTRY_YOUNG 0x1000 /* SW segment young bit */
|
|
#define _SEGMENT_ENTRY_SPLIT 0x0800 /* THP splitting bit */
|
|
#define _SEGMENT_ENTRY_SPLIT 0x0800 /* THP splitting bit */
|
|
#define _SEGMENT_ENTRY_LARGE 0x0400 /* STE-format control, large page */
|
|
#define _SEGMENT_ENTRY_LARGE 0x0400 /* STE-format control, large page */
|
|
-#define _SEGMENT_ENTRY_CO 0x0100 /* change-recording override */
|
|
|
|
#define _SEGMENT_ENTRY_READ 0x0002 /* SW segment read bit */
|
|
#define _SEGMENT_ENTRY_READ 0x0002 /* SW segment read bit */
|
|
#define _SEGMENT_ENTRY_WRITE 0x0001 /* SW segment write bit */
|
|
#define _SEGMENT_ENTRY_WRITE 0x0001 /* SW segment write bit */
|
|
|
|
|
|
@@ -887,8 +884,6 @@ static inline void set_pte_at(struct mm_struct *mm, unsigned long addr,
|
|
pgste = pgste_set_pte(ptep, pgste, entry);
|
|
pgste = pgste_set_pte(ptep, pgste, entry);
|
|
pgste_set_unlock(ptep, pgste);
|
|
pgste_set_unlock(ptep, pgste);
|
|
} else {
|
|
} else {
|
|
- if (!(pte_val(entry) & _PAGE_INVALID) && MACHINE_HAS_EDAT1)
|
|
|
|
- pte_val(entry) |= _PAGE_CO;
|
|
|
|
*ptep = entry;
|
|
*ptep = entry;
|
|
}
|
|
}
|
|
}
|
|
}
|