|
@@ -938,15 +938,13 @@ static void insert_pfn_pmd(struct vm_area_struct *vma, unsigned long addr,
|
|
|
spinlock_t *ptl;
|
|
|
|
|
|
ptl = pmd_lock(mm, pmd);
|
|
|
- if (pmd_none(*pmd)) {
|
|
|
- entry = pmd_mkhuge(pfn_pmd(pfn, prot));
|
|
|
- if (write) {
|
|
|
- entry = pmd_mkyoung(pmd_mkdirty(entry));
|
|
|
- entry = maybe_pmd_mkwrite(entry, vma);
|
|
|
- }
|
|
|
- set_pmd_at(mm, addr, pmd, entry);
|
|
|
- update_mmu_cache_pmd(vma, addr, pmd);
|
|
|
+ entry = pmd_mkhuge(pfn_pmd(pfn, prot));
|
|
|
+ if (write) {
|
|
|
+ entry = pmd_mkyoung(pmd_mkdirty(entry));
|
|
|
+ entry = maybe_pmd_mkwrite(entry, vma);
|
|
|
}
|
|
|
+ set_pmd_at(mm, addr, pmd, entry);
|
|
|
+ update_mmu_cache_pmd(vma, addr, pmd);
|
|
|
spin_unlock(ptl);
|
|
|
}
|
|
|
|