diff options
Diffstat (limited to 'mm/mprotect.c')
| -rw-r--r-- | mm/mprotect.c | 8 | 
1 files changed, 4 insertions, 4 deletions
diff --git a/mm/mprotect.c b/mm/mprotect.c index 7967825f6d33..7a8e84f86831 100644 --- a/mm/mprotect.c +++ b/mm/mprotect.c @@ -80,6 +80,10 @@ static unsigned long change_pte_range(struct vm_area_struct *vma, pmd_t *pmd,  			if (prot_numa) {  				struct page *page; +				/* Avoid TLB flush if possible */ +				if (pte_protnone(oldpte)) +					continue; +  				page = vm_normal_page(vma, addr, oldpte);  				if (!page || PageKsm(page))  					continue; @@ -97,10 +101,6 @@ static unsigned long change_pte_range(struct vm_area_struct *vma, pmd_t *pmd,  				if (page_is_file_cache(page) && PageDirty(page))  					continue; -				/* Avoid TLB flush if possible */ -				if (pte_protnone(oldpte)) -					continue; -  				/*  				 * Don't mess with PTEs if page is already on the node  				 * a single-threaded process is running on.  | 
