diff options
Diffstat (limited to 'mm/memory.c')
| -rw-r--r-- | mm/memory.c | 10 | 
1 files changed, 4 insertions, 6 deletions
diff --git a/mm/memory.c b/mm/memory.c index fb135ba4aba..221fc9ffcab 100644 --- a/mm/memory.c +++ b/mm/memory.c @@ -2527,9 +2527,8 @@ static int do_wp_page(struct mm_struct *mm, struct vm_area_struct *vma,  	int ret = 0;  	int page_mkwrite = 0;  	struct page *dirty_page = NULL; -	unsigned long mmun_start;	/* For mmu_notifiers */ -	unsigned long mmun_end;		/* For mmu_notifiers */ -	bool mmun_called = false;	/* For mmu_notifiers */ +	unsigned long mmun_start = 0;	/* For mmu_notifiers */ +	unsigned long mmun_end = 0;	/* For mmu_notifiers */  	old_page = vm_normal_page(vma, address, orig_pte);  	if (!old_page) { @@ -2708,8 +2707,7 @@ gotten:  		goto oom_free_new;  	mmun_start  = address & PAGE_MASK; -	mmun_end    = (address & PAGE_MASK) + PAGE_SIZE; -	mmun_called = true; +	mmun_end    = mmun_start + PAGE_SIZE;  	mmu_notifier_invalidate_range_start(mm, mmun_start, mmun_end);  	/* @@ -2778,7 +2776,7 @@ gotten:  		page_cache_release(new_page);  unlock:  	pte_unmap_unlock(page_table, ptl); -	if (mmun_called) +	if (mmun_end > mmun_start)  		mmu_notifier_invalidate_range_end(mm, mmun_start, mmun_end);  	if (old_page) {  		/*  |