ARM: memory hotplug: stop cpus while memory hotremove
Avoid page table corruptions during memory hotremove by stopping all other cpus. Change-Id: If4084768044dd95601bdc5993d14bc6b0a5921c3 Signed-off-by: Venkata Rao Kakani <vkakani@codeaurora.org>
This commit is contained in:
parent
2386158c7b
commit
ebef173049
1 changed files with 7 additions and 0 deletions
|
@ -1037,7 +1037,11 @@ void remove_pagetable(unsigned long start, unsigned long end, bool direct)
|
|||
unsigned long addr;
|
||||
pgd_t *pgd;
|
||||
pud_t *pud;
|
||||
int cpu;
|
||||
|
||||
for_each_possible_cpu(cpu)
|
||||
if (current->cpu != cpu)
|
||||
sched_isolate_cpu(cpu);
|
||||
for (addr = start; addr < end; addr = next) {
|
||||
next = pgd_addr_end(addr, end);
|
||||
|
||||
|
@ -1058,6 +1062,9 @@ void remove_pagetable(unsigned long start, unsigned long end, bool direct)
|
|||
}
|
||||
|
||||
flush_tlb_all();
|
||||
for_each_possible_cpu(cpu)
|
||||
if (current->cpu != cpu)
|
||||
sched_unisolate_cpu_unlocked(cpu);
|
||||
}
|
||||
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue