Patchwork Current kernel fails to compile with KVM on PowerPC

login
register
mail settings
Submitter Jörg Sommer
Date Dec. 24, 2011, 11:13 a.m.
Message ID <20111224111359.GB3938@alea.gnuu.de>
Download mbox | patch
Permalink /patch/133159/
State New
Headers show

Comments

Jörg Sommer - Dec. 24, 2011, 11:13 a.m.
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@alea.gnuu.de>
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@alea.gnuu.de>

Patch

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) {