[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