mirror of https://gitee.com/openkylin/linux.git
23ed6cb9a2
On ppc64, when opening a new hugepage region, we need to make sure any old normal-page SLBs for the area are flushed on all CPUs. There was a bug in this logic - after putting the new hugepage area masks into the thread structure, we copied it into the paca (read by the SLB miss handler) only on one CPU, not on all. This could cause incorrect SLB entries to be loaded when a multithreaded program was running simultaneously on several CPUs. This patch corrects the error, copying the context information into the PACA on all CPUs using the mm in question before flushing any existing SLB entries. Signed-off-by: David Gibson <david@gibson.dropbear.id.au> Signed-off-by: Paul Mackerras <paulus@samba.org> |
||
---|---|---|
.. | ||
4xx_mmu.c | ||
44x_mmu.c | ||
Makefile | ||
fault.c | ||
fsl_booke_mmu.c | ||
hash_low_32.S | ||
hash_low_64.S | ||
hash_native_64.c | ||
hash_utils_64.c | ||
hugetlbpage.c | ||
imalloc.c | ||
init_32.c | ||
init_64.c | ||
lmb.c | ||
mem.c | ||
mmap.c | ||
mmu_context_32.c | ||
mmu_context_64.c | ||
mmu_decl.h | ||
numa.c | ||
pgtable_32.c | ||
pgtable_64.c | ||
ppc_mmu_32.c | ||
slb.c | ||
slb_low.S | ||
stab.c | ||
tlb_32.c | ||
tlb_64.c |