[PATCH] Use flush tlb last level when change protection
From: Xuefeng Wang
Date: Sat Feb 23 2019 - 01:48:25 EST
The protection attributes are only kept in last level tlb, so
protection changing only need invalidate last level tlb, exclude
the PWC entries.
Signed-off-by: Xuefeng Wang <wxf.wang@xxxxxxxxxxxxx>
---
mm/mprotect.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/mm/mprotect.c b/mm/mprotect.c
index 36cb358..0c4303d 100644
--- a/mm/mprotect.c
+++ b/mm/mprotect.c
@@ -287,7 +287,7 @@ static unsigned long change_protection_range(struct vm_area_struct *vma,
/* Only flush the TLB if we actually modified any entries: */
if (pages)
- flush_tlb_range(vma, start, end);
+ __flush_tlb_range(vma, start, end, PAGE_SIZE, true);
dec_tlb_flush_pending(mm);
return pages;
--
1.7.12.4