|
@@ -1507,7 +1507,9 @@ static inline pmd_t pmdp_huge_clear_flush(struct vm_area_struct *vma,
|
|
|
static inline void pmdp_invalidate(struct vm_area_struct *vma,
|
|
|
unsigned long addr, pmd_t *pmdp)
|
|
|
{
|
|
|
- pmdp_xchg_direct(vma->vm_mm, addr, pmdp, __pmd(_SEGMENT_ENTRY_EMPTY));
|
|
|
+ pmd_t pmd = __pmd(pmd_val(*pmdp) | _SEGMENT_ENTRY_INVALID);
|
|
|
+
|
|
|
+ pmdp_xchg_direct(vma->vm_mm, addr, pmdp, pmd);
|
|
|
}
|
|
|
|
|
|
#define __HAVE_ARCH_PMDP_SET_WRPROTECT
|