Re: [PATCH v3 15/15] powerpc/32s: Activate CONFIG_VMAP_STACK

From: Michael Ellerman
Date: Mon Nov 18 2019 - 06:11:55 EST


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

config PPC_BOOK3S_601
bool "PowerPC 601"


Thoughts?

cheers