diff mbox

[4/5] target-ppc: Remove CONFIG_PSERIES dependency in kvm.c

Message ID 1363226008-26639-5-git-send-email-david@gibson.dropbear.id.au
State New
Headers show

Commit Message

David Gibson March 14, 2013, 1:53 a.m. UTC
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(-)

Comments

Alexander Graf March 15, 2013, 12:39 p.m. UTC | #1
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 mbox

Patch

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,