|
@@ -286,7 +286,6 @@ static inline int is_module_addr(void *addr)
|
|
|
|
|
|
#define _SEGMENT_ENTRY_DIRTY 0x2000 /* SW segment dirty bit */
|
|
|
#define _SEGMENT_ENTRY_YOUNG 0x1000 /* SW segment young bit */
|
|
|
-#define _SEGMENT_ENTRY_SPLIT 0x0800 /* THP splitting bit */
|
|
|
#define _SEGMENT_ENTRY_LARGE 0x0400 /* STE-format control, large page */
|
|
|
#define _SEGMENT_ENTRY_READ 0x0002 /* SW segment read bit */
|
|
|
#define _SEGMENT_ENTRY_WRITE 0x0001 /* SW segment write bit */
|
|
@@ -318,8 +317,6 @@ static inline int is_module_addr(void *addr)
|
|
|
* SW-bits: y young, d dirty, r read, w write
|
|
|
*/
|
|
|
|
|
|
-#define _SEGMENT_ENTRY_SPLIT_BIT 11 /* THP splitting bit number */
|
|
|
-
|
|
|
/* Page status table bits for virtualization */
|
|
|
#define PGSTE_ACC_BITS 0xf000000000000000UL
|
|
|
#define PGSTE_FP_BIT 0x0800000000000000UL
|
|
@@ -523,10 +520,6 @@ static inline int pmd_bad(pmd_t pmd)
|
|
|
return (pmd_val(pmd) & ~_SEGMENT_ENTRY_BITS) != 0;
|
|
|
}
|
|
|
|
|
|
-#define __HAVE_ARCH_PMDP_SPLITTING_FLUSH
|
|
|
-extern void pmdp_splitting_flush(struct vm_area_struct *vma,
|
|
|
- unsigned long addr, pmd_t *pmdp);
|
|
|
-
|
|
|
#define __HAVE_ARCH_PMDP_SET_ACCESS_FLAGS
|
|
|
extern int pmdp_set_access_flags(struct vm_area_struct *vma,
|
|
|
unsigned long address, pmd_t *pmdp,
|
|
@@ -1424,8 +1417,7 @@ static inline pmd_t pmd_modify(pmd_t pmd, pgprot_t newprot)
|
|
|
if (pmd_large(pmd)) {
|
|
|
pmd_val(pmd) &= _SEGMENT_ENTRY_ORIGIN_LARGE |
|
|
|
_SEGMENT_ENTRY_DIRTY | _SEGMENT_ENTRY_YOUNG |
|
|
|
- _SEGMENT_ENTRY_LARGE | _SEGMENT_ENTRY_SPLIT |
|
|
|
- _SEGMENT_ENTRY_SOFT_DIRTY;
|
|
|
+ _SEGMENT_ENTRY_LARGE | _SEGMENT_ENTRY_SOFT_DIRTY;
|
|
|
pmd_val(pmd) |= massage_pgprot_pmd(newprot);
|
|
|
if (!(pmd_val(pmd) & _SEGMENT_ENTRY_DIRTY))
|
|
|
pmd_val(pmd) |= _SEGMENT_ENTRY_PROTECT;
|
|
@@ -1533,12 +1525,6 @@ extern void pgtable_trans_huge_deposit(struct mm_struct *mm, pmd_t *pmdp,
|
|
|
#define __HAVE_ARCH_PGTABLE_WITHDRAW
|
|
|
extern pgtable_t pgtable_trans_huge_withdraw(struct mm_struct *mm, pmd_t *pmdp);
|
|
|
|
|
|
-static inline int pmd_trans_splitting(pmd_t pmd)
|
|
|
-{
|
|
|
- return (pmd_val(pmd) & _SEGMENT_ENTRY_LARGE) &&
|
|
|
- (pmd_val(pmd) & _SEGMENT_ENTRY_SPLIT);
|
|
|
-}
|
|
|
-
|
|
|
static inline void set_pmd_at(struct mm_struct *mm, unsigned long addr,
|
|
|
pmd_t *pmdp, pmd_t entry)
|
|
|
{
|