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

From: Michael Ellerman
Date: Tue Nov 19 2019 - 01:57:18 EST


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