Message ID | 1363226008-26639-5-git-send-email-david@gibson.dropbear.id.au |
---|---|
State | New |
Headers | show |
On 14.03.2013, at 02:53, David Gibson wrote: > target-ppc/kvm.c has an #ifdef on CONFIG_PSERIES, for the handling of > KVM exits due to a PAPR hypercall from the guest. However, since commit > e4c8b28cde12d01ada8fe869567dc5717a2dfcb7 "ppc: express FDT dependency of > pSeries and e500 boards via default-configs/", this hasn't worked properly. > That patch altered the configuration setup so that although CONFIG_PSERIES > is visible from the Makefiles, it is not visible from C files. This broke > the pseries machine when KVM is in use. > > This patch makes a quick and dirty fix, by removing the CONFIG_PSERIES > dependency, replacing it with TARGET_PPC64 (since removing it entirely > leads to type mismatch errors). Technically this breaks the build when > configured with --disable-fdt, since that disables CONFIG_PSERIES on > TARGET_PPC64. However, it turns out the build was already broken in that > case, so this fixes pseries kvm without breaking anything extra. I'm > looking into how to fix that build breakage, but I don't think that need > delay applying this patch. The proper way to fix this is to have dtc be a submodule (see patches on the ML) and simply require it for the PPC build. > > Signed-off-by: David Gibson <david@gibson.dropbear.id.au> Thanks, applied to ppc-next. > --- > target-ppc/kvm.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/target-ppc/kvm.c b/target-ppc/kvm.c > index eaa11a1..72d5398 100644 > --- a/target-ppc/kvm.c > +++ b/target-ppc/kvm.c > @@ -1193,7 +1193,7 @@ int kvm_arch_handle_exit(CPUState *cs, struct kvm_run *run) > dprintf("handle halt\n"); > ret = kvmppc_handle_halt(env); > break; > -#ifdef CONFIG_PSERIES > +#if defined(TARGET_PPC64) > case KVM_EXIT_PAPR_HCALL: > dprintf("handle PAPR hypercall\n"); > run->papr_hcall.ret = spapr_hypercall(cpu, > -- > 1.7.10.4 >
diff --git a/target-ppc/kvm.c b/target-ppc/kvm.c index eaa11a1..72d5398 100644 --- a/target-ppc/kvm.c +++ b/target-ppc/kvm.c @@ -1193,7 +1193,7 @@ int kvm_arch_handle_exit(CPUState *cs, struct kvm_run *run) dprintf("handle halt\n"); ret = kvmppc_handle_halt(env); break; -#ifdef CONFIG_PSERIES +#if defined(TARGET_PPC64) case KVM_EXIT_PAPR_HCALL: dprintf("handle PAPR hypercall\n"); run->papr_hcall.ret = spapr_hypercall(cpu,
target-ppc/kvm.c has an #ifdef on CONFIG_PSERIES, for the handling of KVM exits due to a PAPR hypercall from the guest. However, since commit e4c8b28cde12d01ada8fe869567dc5717a2dfcb7 "ppc: express FDT dependency of pSeries and e500 boards via default-configs/", this hasn't worked properly. That patch altered the configuration setup so that although CONFIG_PSERIES is visible from the Makefiles, it is not visible from C files. This broke the pseries machine when KVM is in use. This patch makes a quick and dirty fix, by removing the CONFIG_PSERIES dependency, replacing it with TARGET_PPC64 (since removing it entirely leads to type mismatch errors). Technically this breaks the build when configured with --disable-fdt, since that disables CONFIG_PSERIES on TARGET_PPC64. However, it turns out the build was already broken in that case, so this fixes pseries kvm without breaking anything extra. I'm looking into how to fix that build breakage, but I don't think that need delay applying this patch. Signed-off-by: David Gibson <david@gibson.dropbear.id.au> --- target-ppc/kvm.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)