diff mbox

[v2,10/22] ppc/xics: register the reset handler of ICS objects

Message ID 1487252865-12064-11-git-send-email-clg@kaod.org
State New
Headers show

Commit Message

Cédric Le Goater Feb. 16, 2017, 1:47 p.m. UTC
The reset of the ICS objects is currently handled by XICS but this can
be done for each individual ICS. This also reduces the use of the XICS
list of ICS.

Signed-off-by: Cédric Le Goater <clg@kaod.org>
---
 hw/intc/xics.c | 5 -----
 hw/ppc/spapr.c | 1 +
 2 files changed, 1 insertion(+), 5 deletions(-)

Comments

David Gibson Feb. 23, 2017, 2:33 a.m. UTC | #1
On Thu, Feb 16, 2017 at 02:47:33PM +0100, Cédric Le Goater wrote:
> The reset of the ICS objects is currently handled by XICS but this can
> be done for each individual ICS. This also reduces the use of the XICS
> list of ICS.
> 
> Signed-off-by: Cédric Le Goater <clg@kaod.org>

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

> ---
>  hw/intc/xics.c | 5 -----
>  hw/ppc/spapr.c | 1 +
>  2 files changed, 1 insertion(+), 5 deletions(-)
> 
> diff --git a/hw/intc/xics.c b/hw/intc/xics.c
> index bfd3a539561a..d679313cd49f 100644
> --- a/hw/intc/xics.c
> +++ b/hw/intc/xics.c
> @@ -139,16 +139,11 @@ static void ics_simple_pic_print_info(InterruptStatsProvider *obj,
>  static void xics_common_reset(DeviceState *d)
>  {
>      XICSState *xics = XICS_COMMON(d);
> -    ICSState *ics;
>      int i;
>  
>      for (i = 0; i < xics->nr_servers; i++) {
>          device_reset(DEVICE(&xics->ss[i]));
>      }
> -
> -    QLIST_FOREACH(ics, &xics->ics, list) {
> -        device_reset(DEVICE(ics));
> -    }
>  }
>  
>  static void xics_common_initfn(Object *obj)
> diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c
> index 85a973cce7ae..a2a64d7de41d 100644
> --- a/hw/ppc/spapr.c
> +++ b/hw/ppc/spapr.c
> @@ -112,6 +112,7 @@ static XICSState *try_create_xics(sPAPRMachineState *spapr,
>      }
>  
>      spapr->ics = ICS_SIMPLE(object_new(type_ics));
> +    qdev_set_parent_bus(DEVICE(spapr->ics), sysbus_get_default());
>      object_property_add_child(OBJECT(spapr), "ics", OBJECT(spapr->ics), NULL);
>      object_property_set_int(OBJECT(spapr->ics), nr_irqs, "nr-irqs", &err);
>      object_property_add_const_link(OBJECT(spapr->ics), "xics", OBJECT(xics),
diff mbox

Patch

diff --git a/hw/intc/xics.c b/hw/intc/xics.c
index bfd3a539561a..d679313cd49f 100644
--- a/hw/intc/xics.c
+++ b/hw/intc/xics.c
@@ -139,16 +139,11 @@  static void ics_simple_pic_print_info(InterruptStatsProvider *obj,
 static void xics_common_reset(DeviceState *d)
 {
     XICSState *xics = XICS_COMMON(d);
-    ICSState *ics;
     int i;
 
     for (i = 0; i < xics->nr_servers; i++) {
         device_reset(DEVICE(&xics->ss[i]));
     }
-
-    QLIST_FOREACH(ics, &xics->ics, list) {
-        device_reset(DEVICE(ics));
-    }
 }
 
 static void xics_common_initfn(Object *obj)
diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c
index 85a973cce7ae..a2a64d7de41d 100644
--- a/hw/ppc/spapr.c
+++ b/hw/ppc/spapr.c
@@ -112,6 +112,7 @@  static XICSState *try_create_xics(sPAPRMachineState *spapr,
     }
 
     spapr->ics = ICS_SIMPLE(object_new(type_ics));
+    qdev_set_parent_bus(DEVICE(spapr->ics), sysbus_get_default());
     object_property_add_child(OBJECT(spapr), "ics", OBJECT(spapr->ics), NULL);
     object_property_set_int(OBJECT(spapr->ics), nr_irqs, "nr-irqs", &err);
     object_property_add_const_link(OBJECT(spapr->ics), "xics", OBJECT(xics),