mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-13 16:16:15 -04:00
soc: qcom: mem-offline: Clear page-table entries after offline
After a memory block is offlined, the page-table entries should be removed in order to avoid any CPU speculative accesses happening on this region. Clear off the entries at the leaf levels (PUD or PMD) on a block mapped memory region. This only zeroes the entries and does not free the page table memory. During online, we create mappings again for these regions. Change-Id: I71091c33589645567c60457ba569dd393ddcab59 Signed-off-by: Sudarshan Rajagopalan <sudaraja@codeaurora.org> [isaacm@codeaurora.org: resolve merge conflicts] Signed-off-by: Isaac J. Manjarres <isaacm@codeaurora.org>
This commit is contained in:
parent
1f1fb52ed2
commit
fdee3b6ba8
2 changed files with 9 additions and 1 deletions
|
|
@ -391,6 +391,14 @@ static phys_addr_t pgd_pgtable_alloc(int shift)
|
|||
return pa;
|
||||
}
|
||||
|
||||
void create_pgtable_mapping(phys_addr_t start, phys_addr_t end)
|
||||
{
|
||||
unsigned long virt = (unsigned long)phys_to_virt(start);
|
||||
|
||||
__create_pgd_mapping(init_mm.pgd, start, virt, end - start,
|
||||
PAGE_KERNEL, NULL, 0);
|
||||
}
|
||||
|
||||
/*
|
||||
* This function can only be used to modify existing table entries,
|
||||
* without allocating new levels of table. Note that this permits the
|
||||
|
|
|
|||
|
|
@ -145,7 +145,7 @@ void __next_reserved_mem_region(u64 *idx, phys_addr_t *out_start,
|
|||
phys_addr_t *out_end);
|
||||
|
||||
void __memblock_free_late(phys_addr_t base, phys_addr_t size);
|
||||
|
||||
void create_pgtable_mapping(phys_addr_t start, phys_addr_t end);
|
||||
/**
|
||||
* for_each_mem_range - iterate through memblock areas from type_a and not
|
||||
* included in type_b. Or just type_a if type_b is NULL.
|
||||
|
|
|
|||
Loading…
Reference in a new issue