Michael Ellerman <mpe@xxxxxxxxxxxxxx> a écrit :
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?
Ok, lets do it the way you propose.
I'll look at this problem with KVM when I'm back next week.
Thanks
Christophe