diff options
Diffstat (limited to 'mm/huge_memory.c')
| -rw-r--r-- | mm/huge_memory.c | 9 | 
1 files changed, 2 insertions, 7 deletions
diff --git a/mm/huge_memory.c b/mm/huge_memory.c index 82166bf974e1..da23eb96779f 100644 --- a/mm/huge_memory.c +++ b/mm/huge_memory.c @@ -1545,6 +1545,7 @@ int change_huge_pmd(struct vm_area_struct *vma, pmd_t *pmd,  				entry = pmd_mknonnuma(entry);  			entry = pmd_modify(entry, newprot);  			ret = HPAGE_PMD_NR; +			set_pmd_at(mm, addr, pmd, entry);  			BUG_ON(pmd_write(entry));  		} else {  			struct page *page = pmd_page(*pmd); @@ -1557,16 +1558,10 @@ int change_huge_pmd(struct vm_area_struct *vma, pmd_t *pmd,  			 */  			if (!is_huge_zero_page(page) &&  			    !pmd_numa(*pmd)) { -				entry = *pmd; -				entry = pmd_mknuma(entry); +				pmdp_set_numa(mm, addr, pmd);  				ret = HPAGE_PMD_NR;  			}  		} - -		/* Set PMD if cleared earlier */ -		if (ret == HPAGE_PMD_NR) -			set_pmd_at(mm, addr, pmd, entry); -  		spin_unlock(ptl);  	}  | 
