|
@@ -706,6 +706,13 @@ static inline void pmdp_set_wrprotect(struct mm_struct *mm,
|
|
|
{
|
|
|
ptep_set_wrprotect(mm, address, (pte_t *)pmdp);
|
|
|
}
|
|
|
+
|
|
|
+#define pmdp_establish pmdp_establish
|
|
|
+static inline pmd_t pmdp_establish(struct vm_area_struct *vma,
|
|
|
+ unsigned long address, pmd_t *pmdp, pmd_t pmd)
|
|
|
+{
|
|
|
+ return __pmd(xchg_relaxed(&pmd_val(*pmdp), pmd_val(pmd)));
|
|
|
+}
|
|
|
#endif
|
|
|
|
|
|
extern pgd_t swapper_pg_dir[PTRS_PER_PGD];
|