[PATCH for-8.0 6/7] hw/intc/xics: Convert TYPE_ICS to 3-phase reset
Convert the TYPE_ICS class to 3-phase reset; this will allow us to convert the TYPE_PHB3_MSI class which inherits from it. Signed-off-by: Peter Maydell --- hw/intc/xics.c | 9 + 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/hw/intc/xics.c b/hw/intc/xics.c index dd130467ccc..c7f8abd71e4 100644 --- a/hw/intc/xics.c +++ b/hw/intc/xics.c @@ -564,9 +564,9 @@ static void ics_reset_irq(ICSIRQState *irq) irq->saved_priority = 0xff; } -static void ics_reset(DeviceState *dev) +static void ics_reset_hold(Object *obj) { -ICSState *ics = ICS(dev); +ICSState *ics = ICS(obj); g_autofree uint8_t *flags = g_malloc(ics->nr_irqs); int i; @@ -584,7 +584,7 @@ static void ics_reset(DeviceState *dev) if (kvm_irqchip_in_kernel()) { Error *local_err = NULL; -ics_set_kvm_state(ICS(dev), &local_err); +ics_set_kvm_state(ics, &local_err); if (local_err) { error_report_err(local_err); } @@ -688,16 +688,17 @@ static Property ics_properties[] = { static void ics_class_init(ObjectClass *klass, void *data) { DeviceClass *dc = DEVICE_CLASS(klass); +ResettableClass *rc = RESETTABLE_CLASS(klass); dc->realize = ics_realize; device_class_set_props(dc, ics_properties); -dc->reset = ics_reset; dc->vmsd = &vmstate_ics; /* * Reason: part of XICS interrupt controller, needs to be wired up, * e.g. by spapr_irq_init(). */ dc->user_creatable = false; +rc->phases.hold = ics_reset_hold; } static const TypeInfo ics_info = { -- 2.25.1
Re: [PATCH for-8.0 6/7] hw/intc/xics: Convert TYPE_ICS to 3-phase reset
On 11/25/22 12:52, Peter Maydell wrote: Convert the TYPE_ICS class to 3-phase reset; this will allow us to convert the TYPE_PHB3_MSI class which inherits from it. Signed-off-by: Peter Maydell Reviewed-by: Cédric Le Goater Thanks, C. --- hw/intc/xics.c | 9 + 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/hw/intc/xics.c b/hw/intc/xics.c index dd130467ccc..c7f8abd71e4 100644 --- a/hw/intc/xics.c +++ b/hw/intc/xics.c @@ -564,9 +564,9 @@ static void ics_reset_irq(ICSIRQState *irq) irq->saved_priority = 0xff; } -static void ics_reset(DeviceState *dev) +static void ics_reset_hold(Object *obj) { -ICSState *ics = ICS(dev); +ICSState *ics = ICS(obj); g_autofree uint8_t *flags = g_malloc(ics->nr_irqs); int i; @@ -584,7 +584,7 @@ static void ics_reset(DeviceState *dev) if (kvm_irqchip_in_kernel()) { Error *local_err = NULL; -ics_set_kvm_state(ICS(dev), &local_err); +ics_set_kvm_state(ics, &local_err); if (local_err) { error_report_err(local_err); } @@ -688,16 +688,17 @@ static Property ics_properties[] = { static void ics_class_init(ObjectClass *klass, void *data) { DeviceClass *dc = DEVICE_CLASS(klass); +ResettableClass *rc = RESETTABLE_CLASS(klass); dc->realize = ics_realize; device_class_set_props(dc, ics_properties); -dc->reset = ics_reset; dc->vmsd = &vmstate_ics; /* * Reason: part of XICS interrupt controller, needs to be wired up, * e.g. by spapr_irq_init(). */ dc->user_creatable = false; +rc->phases.hold = ics_reset_hold; } static const TypeInfo ics_info = {
Re: [PATCH for-8.0 6/7] hw/intc/xics: Convert TYPE_ICS to 3-phase reset
On Fri, 25 Nov 2022 11:52:39 + Peter Maydell wrote: > Convert the TYPE_ICS class to 3-phase reset; this will allow us > to convert the TYPE_PHB3_MSI class which inherits from it. > > Signed-off-by: Peter Maydell > --- Reviewed-by: Greg Kurz > hw/intc/xics.c | 9 + > 1 file changed, 5 insertions(+), 4 deletions(-) > > diff --git a/hw/intc/xics.c b/hw/intc/xics.c > index dd130467ccc..c7f8abd71e4 100644 > --- a/hw/intc/xics.c > +++ b/hw/intc/xics.c > @@ -564,9 +564,9 @@ static void ics_reset_irq(ICSIRQState *irq) > irq->saved_priority = 0xff; > } > > -static void ics_reset(DeviceState *dev) > +static void ics_reset_hold(Object *obj) > { > -ICSState *ics = ICS(dev); > +ICSState *ics = ICS(obj); > g_autofree uint8_t *flags = g_malloc(ics->nr_irqs); > int i; > > @@ -584,7 +584,7 @@ static void ics_reset(DeviceState *dev) > if (kvm_irqchip_in_kernel()) { > Error *local_err = NULL; > > -ics_set_kvm_state(ICS(dev), &local_err); > +ics_set_kvm_state(ics, &local_err); > if (local_err) { > error_report_err(local_err); > } > @@ -688,16 +688,17 @@ static Property ics_properties[] = { > static void ics_class_init(ObjectClass *klass, void *data) > { > DeviceClass *dc = DEVICE_CLASS(klass); > +ResettableClass *rc = RESETTABLE_CLASS(klass); > > dc->realize = ics_realize; > device_class_set_props(dc, ics_properties); > -dc->reset = ics_reset; > dc->vmsd = &vmstate_ics; > /* > * Reason: part of XICS interrupt controller, needs to be wired up, > * e.g. by spapr_irq_init(). > */ > dc->user_creatable = false; > +rc->phases.hold = ics_reset_hold; > } > > static const TypeInfo ics_info = {
Re: [PATCH for-8.0 6/7] hw/intc/xics: Convert TYPE_ICS to 3-phase reset
On 25/11/22 12:52, Peter Maydell wrote: Convert the TYPE_ICS class to 3-phase reset; this will allow us to convert the TYPE_PHB3_MSI class which inherits from it. Signed-off-by: Peter Maydell --- hw/intc/xics.c | 9 + 1 file changed, 5 insertions(+), 4 deletions(-) Reviewed-by: Philippe Mathieu-Daudé