diff options
Diffstat (limited to 'mm/ksm.c')
| -rw-r--r-- | mm/ksm.c | 14 | 
1 files changed, 7 insertions, 7 deletions
@@ -365,7 +365,7 @@ static int break_ksm(struct vm_area_struct *vma, unsigned long addr)  	do {  		cond_resched();  		page = follow_page(vma, addr, FOLL_GET); -		if (!page) +		if (IS_ERR_OR_NULL(page))  			break;  		if (PageKsm(page))  			ret = handle_mm_fault(vma->vm_mm, vma, addr, @@ -447,7 +447,7 @@ static struct page *get_mergeable_page(struct rmap_item *rmap_item)  		goto out;  	page = follow_page(vma, addr, FOLL_GET); -	if (!page) +	if (IS_ERR_OR_NULL(page))  		goto out;  	if (PageAnon(page)) {  		flush_anon_page(vma, page, addr); @@ -751,7 +751,7 @@ static int write_protect_page(struct vm_area_struct *vma, struct page *page,  		 * page  		 */  		if (page_mapcount(page) + 1 + swapped != page_count(page)) { -			set_pte_at_notify(mm, addr, ptep, entry); +			set_pte_at(mm, addr, ptep, entry);  			goto out_unlock;  		}  		entry = pte_wrprotect(entry); @@ -1086,7 +1086,7 @@ struct rmap_item *unstable_tree_search_insert(struct rmap_item *rmap_item,  		cond_resched();  		tree_rmap_item = rb_entry(*new, struct rmap_item, node);  		tree_page = get_mergeable_page(tree_rmap_item); -		if (!tree_page) +		if (IS_ERR_OR_NULL(tree_page))  			return NULL;  		/* @@ -1294,7 +1294,7 @@ next_mm:  			if (ksm_test_exit(mm))  				break;  			*page = follow_page(vma, ksm_scan.address, FOLL_GET); -			if (*page && PageAnon(*page)) { +			if (!IS_ERR_OR_NULL(*page) && PageAnon(*page)) {  				flush_anon_page(vma, *page, ksm_scan.address);  				flush_dcache_page(*page);  				rmap_item = get_next_rmap_item(slot, @@ -1308,7 +1308,7 @@ next_mm:  				up_read(&mm->mmap_sem);  				return rmap_item;  			} -			if (*page) +			if (!IS_ERR_OR_NULL(*page))  				put_page(*page);  			ksm_scan.address += PAGE_SIZE;  			cond_resched(); @@ -1367,7 +1367,7 @@ next_mm:  static void ksm_do_scan(unsigned int scan_npages)  {  	struct rmap_item *rmap_item; -	struct page *page; +	struct page *uninitialized_var(page);  	while (scan_npages--) {  		cond_resched();  |