OSDN Git Service

powerpc/booke64: Move mb() to __set_pte_at() with kernel-addr test
authorScott Wood <scottwood@freescale.com>
Sat, 18 Jul 2015 19:24:57 +0000 (14:24 -0500)
committerScott Wood <scottwood@freescale.com>
Sat, 8 Aug 2015 04:00:01 +0000 (23:00 -0500)
commit0d61f0b3e222b588480e2ad1e85bb2ea57561c4b
treedfc4af3ad3b0c421b5855218b133a918ed894bc1
parentcf184dc2dd33847f4b211b01d8c7ec0526e6c5e4
powerpc/booke64: Move mb() to __set_pte_at() with kernel-addr test

map_kernel() doesn't catch all places that create kernel PTEs.  In
particular, vmalloc() calls set_pte_at() directly.  This causes a
crash when booting a non-SMP kernel on e6500.

Move the sync to __set_pte(), to be executed only for kernel addresses.

Signed-off-by: Scott Wood <scottwood@freescale.com>
arch/powerpc/include/asm/pgtable.h
arch/powerpc/mm/pgtable_64.c