Re: Current kernel fails to compile with KVM on PowerPC

From: Jörg Sommer
Date: Sat Dec 24 2011 - 11:35:42 EST


JÃrg Sommer hat am Sat 24. Dec, 11:31 (+0100) geschrieben:
> Alexander Graf hat am Fri 23. Dec, 14:50 (+0100) geschrieben:
> > On 20.12.2011, at 21:27, JÃrg Sommer wrote:
> > > JÃrg Sommer hat am Mon 07. Nov, 20:48 (+0100) geschrieben:
> > >> CHK include/linux/version.h
> > >> HOSTCC scripts/mod/modpost.o
> > >> CHK include/generated/utsrelease.h
> > >> UPD include/generated/utsrelease.h
> > >> HOSTLD scripts/mod/modpost
> > >> GEN include/generated/bounds.h
> > >> CC arch/powerpc/kernel/asm-offsets.s
> > >> In file included from arch/powerpc/kernel/asm-offsets.c:59:0:
> > >> /home/joerg/git/linux/arch/powerpc/include/asm/kvm_book3s.h: In function âcompute_tlbie_rbâ:
> > >> /home/joerg/git/linux/arch/powerpc/include/asm/kvm_book3s.h:393:10: error: âHPTE_V_SECONDARYâ undeclared (first use in this function)
> > >> /home/joerg/git/linux/arch/powerpc/include/asm/kvm_book3s.h:393:10: note: each undeclared identifier is reported only once for each function it appears in
> > >> /home/joerg/git/linux/arch/powerpc/include/asm/kvm_book3s.h:396:12: error: âHPTE_V_1TB_SEGâ undeclared (first use in this function)
> > >> /home/joerg/git/linux/arch/powerpc/include/asm/kvm_book3s.h:401:10: error: âHPTE_V_LARGEâ undeclared (first use in this function)
> > >> /home/joerg/git/linux/arch/powerpc/include/asm/kvm_book3s.h:415:2: warning: right shift count >= width of type [enabled by default]
> > >> make[3]: *** [arch/powerpc/kernel/asm-offsets.s] Fehler 1
> > >> make[2]: *** [prepare0] Fehler 2
> > >> make[1]: *** [deb-pkg] Fehler 2
> > >> make: *** [deb-pkg] Fehler 2
> > >
> > > I'm so sorry to have to report a new bug in one of your patches. It was
> > > covered by the one above. I've picked the commit for it from your git
> > > repository and now, the kernel build fails with this error:
> > >
> > > BOOTCC arch/powerpc/boot/fdt_strerror.o
> > > BOOTAR arch/powerpc/boot/wrapper.a
> > > WRAP arch/powerpc/boot/zImage.pmac
> > > WRAP arch/powerpc/boot/zImage.coff
> > > ERROR: "kvmppc_h_pr" [arch/powerpc/kvm/kvm.ko] undefined!
> > > make[3]: *** [__modpost] Fehler 1
> > > make[2]: *** [modules] Fehler 2
> > > make[2]: *** Warte auf noch nicht beendete Prozesse...
> > > WRAP arch/powerpc/boot/zImage.miboot
> > > make[1]: *** [deb-pkg] Fehler 2
> > > make: *** [deb-pkg] Fehler 2
> >
> > This is odd. kvmppc_h_pr shouldn't be accessed when not in book3s_64_pr mode:
> >
> > #ifdef CONFIG_KVM_BOOK3S_64_PR
> > if (kvmppc_h_pr(vcpu, cmd) == EMULATE_DONE) {
> > r = RESUME_GUEST;
> > break;
> > }
> > #endif

Is this the change you've thought of?

commit b8624f11e94dd9c2280cb01bf2ede31e4316477d
Author: JÃrg Sommer <joerg@xxxxxxxxxxxx>
Date: Sat Dec 24 12:03:03 2011 +0100

KVM: PPC: Use kvmppc_h_pr only if it's available

The function kvmppc_h_pr() is only available when the config option
CONFIG_KVM_BOOK3S_64_PR is set, which is not the case for 32-bit PowerPCs
for example. Building the kernel for these systems failed, because the
symbol could not be resolved.

ERROR: "kvmppc_h_pr" [arch/powerpc/kvm/kvm.ko] undefined!

Signed-off-by: JÃrg Sommer <joerg@xxxxxxxxxxxx>

diff --git a/arch/powerpc/kvm/book3s_pr.c b/arch/powerpc/kvm/book3s_pr.c
index 4b0f01b..eddab24 100644
--- a/arch/powerpc/kvm/book3s_pr.c
+++ b/arch/powerpc/kvm/book3s_pr.c
@@ -677,10 +677,12 @@ program_interrupt:
ulong cmd = kvmppc_get_gpr(vcpu, 3);
int i;

+#ifdef CONFIG_KVM_BOOK3S_64_PR
if (kvmppc_h_pr(vcpu, cmd) == EMULATE_DONE) {
r = RESUME_GUEST;
break;
}
+#endif

run->papr_hcall.nr = cmd;
for (i = 0; i < 9; ++i) {
--
âEs wurden und werden zu viele sprachlose BÃcher gedruckt, nach deren
schon flÃchtiger LektÃre man all die BÃume um Vergebung bitten mÃchte,
die fÃr den Schund ihr Leben lassen mussten.â (Michael JÃrgs,
Seichtgebiete â Warum wir hemmungslos verblÃden)

Attachment: signature.asc
Description: Digital signature http://en.wikipedia.org/wiki/OpenPGP