Michael Ellerman <mpe@xxxxxxxxxxxxxx> writes: > Christophe Leroy <christophe.leroy@xxxxxx> writes: >> A few changes to retrieve DAR and DSISR from struct regs >> instead of retrieving them directly, as they may have >> changed due to a TLB miss. >> >> Also modifies hash_page() and friends to work with virtual >> data addresses instead of physical ones. >> >> Signed-off-by: Christophe Leroy <christophe.leroy@xxxxxx> >> --- >> arch/powerpc/kernel/entry_32.S | 4 +++ >> arch/powerpc/kernel/head_32.S | 19 +++++++++++--- >> arch/powerpc/kernel/head_32.h | 4 ++- >> arch/powerpc/mm/book3s32/hash_low.S | 46 +++++++++++++++++++++------------- >> arch/powerpc/mm/book3s32/mmu.c | 9 +++++-- >> arch/powerpc/platforms/Kconfig.cputype | 2 ++ >> 6 files changed, 61 insertions(+), 23 deletions(-) > > If I build pmac32_defconfig with KVM enabled this causes a build break: > > arch/powerpc/kernel/head_32.S: Assembler messages: > arch/powerpc/kernel/head_32.S:324: Error: attempt to move .org backwards > scripts/Makefile.build:357: recipe for target 'arch/powerpc/kernel/head_32.o' failed > make[2]: *** [arch/powerpc/kernel/head_32.o] Error 1 > > In the interests of getting the series merged I'm inclined to just make > VMAP_STACK and KVM incompatible for now with: > > diff --git a/arch/powerpc/platforms/Kconfig.cputype b/arch/powerpc/platforms/Kconfig.cputype > index 15c9097dc4f7..5074fe77af40 100644 > --- a/arch/powerpc/platforms/Kconfig.cputype > +++ b/arch/powerpc/platforms/Kconfig.cputype > @@ -31,7 +31,7 @@ config PPC_BOOK3S_6xx > select PPC_HAVE_PMU_SUPPORT > select PPC_HAVE_KUEP > select PPC_HAVE_KUAP > - select HAVE_ARCH_VMAP_STACK > + select HAVE_ARCH_VMAP_STACK if !KVM_BOOK3S_32 For some reason this needs to be !KVM. > config PPC_BOOK3S_601 > bool "PowerPC 601" > > > Thoughts? cheers