vmem.c (b97d6790d03b763eca08847a9a5869a4291b9f9a) | vmem.c (907835e6dee6f77ac30ae50bb3f88bd92055c86e) |
---|---|
1// SPDX-License-Identifier: GPL-2.0 2/* 3 * Copyright IBM Corp. 2006 4 */ 5 6#include <linux/memory_hotplug.h> 7#include <linux/memblock.h> 8#include <linux/pfn.h> --- 308 unchanged lines hidden (view full) --- 317 if (!MACHINE_HAS_NX) 318 prot &= ~_REGION_ENTRY_NOEXEC; 319 pud = pud_offset(p4d, addr); 320 for (; addr < end; addr = next, pud++) { 321 next = pud_addr_end(addr, end); 322 if (!add) { 323 if (pud_none(*pud)) 324 continue; | 1// SPDX-License-Identifier: GPL-2.0 2/* 3 * Copyright IBM Corp. 2006 4 */ 5 6#include <linux/memory_hotplug.h> 7#include <linux/memblock.h> 8#include <linux/pfn.h> --- 308 unchanged lines hidden (view full) --- 317 if (!MACHINE_HAS_NX) 318 prot &= ~_REGION_ENTRY_NOEXEC; 319 pud = pud_offset(p4d, addr); 320 for (; addr < end; addr = next, pud++) { 321 next = pud_addr_end(addr, end); 322 if (!add) { 323 if (pud_none(*pud)) 324 continue; |
325 if (pud_large(*pud)) { | 325 if (pud_leaf(*pud)) { |
326 if (IS_ALIGNED(addr, PUD_SIZE) && 327 IS_ALIGNED(next, PUD_SIZE)) { 328 pud_clear(pud); 329 pages++; 330 } 331 continue; 332 } 333 } else if (pud_none(*pud)) { --- 4 unchanged lines hidden (view full) --- 338 set_pud(pud, __pud(__pa(addr) | prot)); 339 pages++; 340 continue; 341 } 342 pmd = vmem_crst_alloc(_SEGMENT_ENTRY_EMPTY); 343 if (!pmd) 344 goto out; 345 pud_populate(&init_mm, pud, pmd); | 326 if (IS_ALIGNED(addr, PUD_SIZE) && 327 IS_ALIGNED(next, PUD_SIZE)) { 328 pud_clear(pud); 329 pages++; 330 } 331 continue; 332 } 333 } else if (pud_none(*pud)) { --- 4 unchanged lines hidden (view full) --- 338 set_pud(pud, __pud(__pa(addr) | prot)); 339 pages++; 340 continue; 341 } 342 pmd = vmem_crst_alloc(_SEGMENT_ENTRY_EMPTY); 343 if (!pmd) 344 goto out; 345 pud_populate(&init_mm, pud, pmd); |
346 } else if (pud_large(*pud)) { | 346 } else if (pud_leaf(*pud)) { |
347 continue; 348 } 349 ret = modify_pmd_table(pud, addr, next, add, direct); 350 if (ret) 351 goto out; 352 if (!add) 353 try_free_pmd_table(pud, addr & PUD_MASK); 354 } --- 226 unchanged lines hidden (view full) --- 581 pud = pud_offset(p4d, addr); 582 if (pud_none(*pud)) { 583 if (!alloc) 584 goto out; 585 pmd = vmem_crst_alloc(_SEGMENT_ENTRY_EMPTY); 586 if (!pmd) 587 goto out; 588 pud_populate(&init_mm, pud, pmd); | 347 continue; 348 } 349 ret = modify_pmd_table(pud, addr, next, add, direct); 350 if (ret) 351 goto out; 352 if (!add) 353 try_free_pmd_table(pud, addr & PUD_MASK); 354 } --- 226 unchanged lines hidden (view full) --- 581 pud = pud_offset(p4d, addr); 582 if (pud_none(*pud)) { 583 if (!alloc) 584 goto out; 585 pmd = vmem_crst_alloc(_SEGMENT_ENTRY_EMPTY); 586 if (!pmd) 587 goto out; 588 pud_populate(&init_mm, pud, pmd); |
589 } else if (WARN_ON_ONCE(pud_large(*pud))) { | 589 } else if (WARN_ON_ONCE(pud_leaf(*pud))) { |
590 goto out; 591 } 592 pmd = pmd_offset(pud, addr); 593 if (pmd_none(*pmd)) { 594 if (!alloc) 595 goto out; 596 pte = vmem_pte_alloc(); 597 if (!pte) --- 72 unchanged lines hidden --- | 590 goto out; 591 } 592 pmd = pmd_offset(pud, addr); 593 if (pmd_none(*pmd)) { 594 if (!alloc) 595 goto out; 596 pte = vmem_pte_alloc(); 597 if (!pte) --- 72 unchanged lines hidden --- |