Patchwork Fix build breakage to kvm on ppc

login
register
mail settings
Submitter David Gibson
Date Feb. 28, 2011, 10:49 a.m.
Message ID <20110228104901.GE10873@yookeroo>
Download mbox | patch
Permalink /patch/84780/
State New
Headers show

Comments

David Gibson - Feb. 28, 2011, 10:49 a.m.
Recent changes to the generic kvm support code broke compile of kvm
for ppc.  The patch below fixes the errors by adjusting types in the
ppc code, and adding a missing #ifdef.

Please apply.

Signed-off-by: David Gibson <david@gibson.dropbear.id.au>

---
 kvm-all.c        |    2 ++
 target-ppc/kvm.c |    6 +++---
 2 files changed, 5 insertions(+), 3 deletions(-)
Jan Kiszka - Feb. 28, 2011, 9:18 p.m.
On 2011-02-28 11:49, David Gibson wrote:
> Recent changes to the generic kvm support code broke compile of kvm
> for ppc.  The patch below fixes the errors by adjusting types in the
> ppc code, and adding a missing #ifdef.
> 
> Please apply.
> 
> Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
> 
> ---
>  kvm-all.c        |    2 ++
>  target-ppc/kvm.c |    6 +++---
>  2 files changed, 5 insertions(+), 3 deletions(-)
> 
> diff --git a/kvm-all.c b/kvm-all.c
> index e6a7de4..fb44e2e 100644
> --- a/kvm-all.c
> +++ b/kvm-all.c
> @@ -998,7 +998,9 @@ int kvm_cpu_exec(CPUState *env)
>      }
>      ret = EXCP_INTERRUPT;
>  
> +#ifdef KVM_CAP_SET_GUEST_DEBUG
>  out:
> +#endif /* KVM_CAP_SET_GUEST_DEBUG */

Yeah, another non-x86 breakage. But this made me think about the main
loop again, and the result will move any related reasons for the #ifdef
into arch code.

>      env->exit_request = 0;
>      cpu_single_env = NULL;
>      return ret;
> diff --git a/target-ppc/kvm.c b/target-ppc/kvm.c
> index 04b94a3..4fa1be3 100644
> --- a/target-ppc/kvm.c
> +++ b/target-ppc/kvm.c
> @@ -223,7 +223,7 @@ int kvmppc_set_interrupt(CPUState *env, int irq, int level)
>  #define PPC_INPUT_INT PPC6xx_INPUT_INT
>  #endif
>  
> -int kvm_arch_pre_run(CPUState *env, struct kvm_run *run)
> +void kvm_arch_pre_run(CPUState *env, struct kvm_run *run)
>  {
>      int r;
>      unsigned irq;
> @@ -254,15 +254,15 @@ int kvm_arch_pre_run(CPUState *env, struct kvm_run *run)
>      /* We don't know if there are more interrupts pending after this. However,
>       * the guest will return to userspace in the course of handling this one
>       * anyways, so we will get a chance to deliver the rest. */
> -    return 0;
>  }
>  
>  void kvm_arch_post_run(CPUState *env, struct kvm_run *run)
>  {
>  }
>  
> -void kvm_arch_process_irqchip_events(CPUState *env)
> +int kvm_arch_process_irqchip_events(CPUState *env)
>  {
> +    return 0;
>  }
>  
>  static int kvmppc_handle_halt(CPUState *env)
> 

That other fix is already filed for uq/master.

Thanks for reporting,
Jan

Patch

diff --git a/kvm-all.c b/kvm-all.c
index e6a7de4..fb44e2e 100644
--- a/kvm-all.c
+++ b/kvm-all.c
@@ -998,7 +998,9 @@  int kvm_cpu_exec(CPUState *env)
     }
     ret = EXCP_INTERRUPT;
 
+#ifdef KVM_CAP_SET_GUEST_DEBUG
 out:
+#endif /* KVM_CAP_SET_GUEST_DEBUG */
     env->exit_request = 0;
     cpu_single_env = NULL;
     return ret;
diff --git a/target-ppc/kvm.c b/target-ppc/kvm.c
index 04b94a3..4fa1be3 100644
--- a/target-ppc/kvm.c
+++ b/target-ppc/kvm.c
@@ -223,7 +223,7 @@  int kvmppc_set_interrupt(CPUState *env, int irq, int level)
 #define PPC_INPUT_INT PPC6xx_INPUT_INT
 #endif
 
-int kvm_arch_pre_run(CPUState *env, struct kvm_run *run)
+void kvm_arch_pre_run(CPUState *env, struct kvm_run *run)
 {
     int r;
     unsigned irq;
@@ -254,15 +254,15 @@  int kvm_arch_pre_run(CPUState *env, struct kvm_run *run)
     /* We don't know if there are more interrupts pending after this. However,
      * the guest will return to userspace in the course of handling this one
      * anyways, so we will get a chance to deliver the rest. */
-    return 0;
 }
 
 void kvm_arch_post_run(CPUState *env, struct kvm_run *run)
 {
 }
 
-void kvm_arch_process_irqchip_events(CPUState *env)
+int kvm_arch_process_irqchip_events(CPUState *env)
 {
+    return 0;
 }
 
 static int kvmppc_handle_halt(CPUState *env)