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:
Venkata Rao Kakani 2018-06-18 14:23:12 +05:30 committed by Gerrit - the friendly Code Review server
parent 2386158c7b
commit ebef173049

View file

@ -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);
}