]> git.proxmox.com Git - mirror_qemu.git/commitdiff
ppc/xics: simplify the cpu_setup() handler
authorCédric Le Goater <clg@kaod.org>
Mon, 27 Feb 2017 14:29:23 +0000 (15:29 +0100)
committerDavid Gibson <david@gibson.dropbear.id.au>
Wed, 1 Mar 2017 00:23:39 +0000 (11:23 +1100)
The cpu_setup() handler currently takes a 'XICSState *' argument to
grab the kernel ICP file descriptor. This interface can be simplified
by using the 'xics' backlink of the ICP object.

This change is also required by subsequent patches which makes use of
the QOM interface for XICS.

Signed-off-by: Cédric Le Goater <clg@kaod.org>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
hw/intc/xics.c
hw/intc/xics_kvm.c
include/hw/ppc/xics.h

index f828bcb07026b8c0d0bba7a499880479297db4e2..a5be0d83cf36961ef90a5498ba92b363cd4bd488 100644 (file)
@@ -66,14 +66,15 @@ void xics_cpu_setup(XICSState *xics, PowerPCCPU *cpu)
     CPUState *cs = CPU(cpu);
     CPUPPCState *env = &cpu->env;
     ICPState *ss = &xics->ss[cs->cpu_index];
-    XICSStateClass *info = XICS_COMMON_GET_CLASS(xics);
+    XICSStateClass *info;
 
     assert(cs->cpu_index < xics->nr_servers);
 
     ss->cs = cs;
 
+    info = XICS_COMMON_GET_CLASS(xics);
     if (info->cpu_setup) {
-        info->cpu_setup(xics, cpu);
+        info->cpu_setup(ss, cpu);
     }
 
     switch (PPC_INPUT(env)) {
index 86ddf470e54650807f138083dc5d6678bdfd1df1..7588280b5d6930d3f033749e968d5b4edc9253d3 100644 (file)
@@ -324,16 +324,11 @@ static const TypeInfo ics_kvm_info = {
 /*
  * XICS-KVM
  */
-static void xics_kvm_cpu_setup(XICSState *xics, PowerPCCPU *cpu)
+static void xics_kvm_cpu_setup(ICPState *ss, PowerPCCPU *cpu)
 {
-    CPUState *cs;
-    ICPState *ss;
+    CPUState *cs = CPU(cpu);
     int ret;
 
-    cs = CPU(cpu);
-    ss = &xics->ss[cs->cpu_index];
-
-    assert(cs->cpu_index < xics->nr_servers);
     if (kernel_xics_fd == -1) {
         abort();
     }
index 01ca5e2dab500f6c33e61bad62767591133b3115..8325dbdaf104374c240179ba4b29f67061a088a4 100644 (file)
@@ -74,7 +74,7 @@ typedef struct XICSFabric XICSFabric;
 struct XICSStateClass {
     DeviceClass parent_class;
 
-    void (*cpu_setup)(XICSState *icp, PowerPCCPU *cpu);
+    void (*cpu_setup)(ICPState *icp, PowerPCCPU *cpu);
 };
 
 struct XICSState {