[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-ppc] [PATCH v2 16/22] ppc/xics: register the reset handler of
From: |
David Gibson |
Subject: |
Re: [Qemu-ppc] [PATCH v2 16/22] ppc/xics: register the reset handler of ICP objects |
Date: |
Thu, 23 Feb 2017 13:42:38 +1100 |
User-agent: |
Mutt/1.7.1 (2016-10-04) |
On Thu, Feb 16, 2017 at 02:47:39PM +0100, Cédric Le Goater wrote:
> The reset of the ICP objects is currently handled by XICS but this can
> be done for each individual ICP.
>
> Signed-off-by: Cédric Le Goater <address@hidden>
Hrm. I think whether device_reset() gets called automatically depends
on how the device is wired into the composition tree, and I'm not sure
the icps are in the right place for it to work.
This doesn't replace the code in xics_common_reset() so if it does
work it means we must have previously been resetting the ICPs twice.
Is that right?
> ---
> hw/intc/xics.c | 18 ------------------
> hw/ppc/spapr.c | 1 +
> 2 files changed, 1 insertion(+), 18 deletions(-)
>
> diff --git a/hw/intc/xics.c b/hw/intc/xics.c
> index dd41340d41a5..3ad7e8cf8ec4 100644
> --- a/hw/intc/xics.c
> +++ b/hw/intc/xics.c
> @@ -137,29 +137,11 @@ static void
> ics_simple_pic_print_info(InterruptStatsProvider *obj,
> /*
> * XICS Common class - parent for emulated XICS and KVM-XICS
> */
> -static void xics_common_reset(DeviceState *d)
> -{
> - XICSState *xics = XICS_COMMON(d);
> - int i;
> -
> - for (i = 0; i < xics->nr_servers; i++) {
> - device_reset(DEVICE(&xics->ss[i]));
> - }
> -}
> -
> -static void xics_common_class_init(ObjectClass *oc, void *data)
> -{
> - DeviceClass *dc = DEVICE_CLASS(oc);
> -
> - dc->reset = xics_common_reset;
> -}
> -
> static const TypeInfo xics_common_info = {
> .name = TYPE_XICS_COMMON,
> .parent = TYPE_DEVICE,
> .instance_size = sizeof(XICSState),
> .class_size = sizeof(XICSStateClass),
> - .class_init = xics_common_class_init,
> };
>
> /*
> diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c
> index 9c1772f93155..445d9a6ddad4 100644
> --- a/hw/ppc/spapr.c
> +++ b/hw/ppc/spapr.c
> @@ -130,6 +130,7 @@ static XICSState *try_create_xics(sPAPRMachineState
> *spapr,
> ICPState *icp = &xics->ss[i];
>
> object_initialize(icp, sizeof(*icp), type_icp);
> + qdev_set_parent_bus(DEVICE(icp), sysbus_get_default());
> object_property_add_child(OBJECT(xics), "icp[*]", OBJECT(icp), NULL);
> object_property_add_const_link(OBJECT(icp), "xics", OBJECT(xics),
> NULL);
> object_property_set_bool(OBJECT(icp), true, "realized", &err);
--
David Gibson | I'll have my music baroque, and my code
david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_
| _way_ _around_!
http://www.ozlabs.org/~dgibson
signature.asc
Description: PGP signature
- [Qemu-ppc] [PATCH v2 11/22] ppc/xics: remove the XICS list of ICS, (continued)
- [Qemu-ppc] [PATCH v2 13/22] ppc/xics: simplify the cpu_setup() handler, Cédric Le Goater, 2017/02/16
- [Qemu-ppc] [PATCH v2 14/22] ppc/xics: use the QOM interface to grab an ICP, Cédric Le Goater, 2017/02/16
- [Qemu-ppc] [PATCH v2 15/22] ppc/xics: simplify spapr_dt_xics() interface, Cédric Le Goater, 2017/02/16
- [Qemu-ppc] [PATCH v2 16/22] ppc/xics: register the reset handler of ICP objects, Cédric Le Goater, 2017/02/16
- Re: [Qemu-ppc] [PATCH v2 16/22] ppc/xics: register the reset handler of ICP objects,
David Gibson <=
[Qemu-ppc] [PATCH v2 17/22] ppc/xics: move the ICP array under the sPAPR machine, Cédric Le Goater, 2017/02/16
[Qemu-ppc] [PATCH v2 18/22] ppc/xics: move kernel_xics_fd out of KVMXICSState, Cédric Le Goater, 2017/02/16
[Qemu-ppc] [PATCH v2 19/22] ppc/xics: move the cpu_setup() handler under the ICPState class, Cédric Le Goater, 2017/02/16
[Qemu-ppc] [PATCH v2 20/22] ppc/xics: remove the 'xics' backlinks, Cédric Le Goater, 2017/02/16
[Qemu-ppc] [PATCH v2 21/22] ppc/xics: export the XICS init routines, Cédric Le Goater, 2017/02/16
[Qemu-ppc] [PATCH v2 22/22] ppc/xics: remove the XICSState classes, Cédric Le Goater, 2017/02/16
Re: [Qemu-ppc] [PATCH v2 00/22] ppc/xics: simplify ICS and ICP creation, David Gibson, 2017/02/21