qemu-ppc
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-ppc] [PATCH v3 12/15] spapr/irq: remove spapr_ics_create()


From: David Gibson
Subject: Re: [Qemu-ppc] [PATCH v3 12/15] spapr/irq: remove spapr_ics_create()
Date: Fri, 22 Mar 2019 12:06:11 +1100
User-agent: Mutt/1.11.3 (2019-02-01)

On Thu, Mar 21, 2019 at 03:49:11PM +0100, Cédric Le Goater wrote:
> spapr_ics_create() is only called once. Merge it in spapr_irq_init_xics()
> and simplify a bit the error handling by using 'error_fatal' .
> 
> Signed-off-by: Cédric Le Goater <address@hidden>

Seems like a good cleanup, regardless of the rest.  Applied to ppc-for-4.1.

> ---
>  hw/ppc/spapr_irq.c | 44 ++++++++++++++------------------------------
>  1 file changed, 14 insertions(+), 30 deletions(-)
> 
> diff --git a/hw/ppc/spapr_irq.c b/hw/ppc/spapr_irq.c
> index b4e3128b7f06..d7130f66dbaa 100644
> --- a/hw/ppc/spapr_irq.c
> +++ b/hw/ppc/spapr_irq.c
> @@ -66,36 +66,11 @@ void spapr_irq_msi_reset(SpaprMachineState *spapr)
>   * XICS IRQ backend.
>   */
>  
> -static ICSState *spapr_ics_create(SpaprMachineState *spapr,
> -                                  int nr_irqs, Error **errp)
> -{
> -    Error *local_err = NULL;
> -    Object *obj;
> -
> -    obj = object_new(TYPE_ICS_SIMPLE);
> -    object_property_add_child(OBJECT(spapr), "ics", obj, &error_abort);
> -    object_property_add_const_link(obj, ICS_PROP_XICS, OBJECT(spapr),
> -                                   &error_abort);
> -    object_property_set_int(obj, nr_irqs, "nr-irqs", &local_err);
> -    if (local_err) {
> -        goto error;
> -    }
> -    object_property_set_bool(obj, true, "realized", &local_err);
> -    if (local_err) {
> -        goto error;
> -    }
> -
> -    return ICS_BASE(obj);
> -
> -error:
> -    error_propagate(errp, local_err);
> -    return NULL;
> -}
> -
>  static void spapr_irq_init_xics(SpaprMachineState *spapr, int nr_irqs,
>                                  Error **errp)
>  {
>      MachineState *machine = MACHINE(spapr);
> +    Object *obj;
>      Error *local_err = NULL;
>      bool xics_kvm = false;
>  
> @@ -107,7 +82,8 @@ static void spapr_irq_init_xics(SpaprMachineState *spapr, 
> int nr_irqs,
>          if (machine_kernel_irqchip_required(machine) && !xics_kvm) {
>              error_prepend(&local_err,
>                            "kernel_irqchip requested but unavailable: ");
> -            goto error;
> +            error_propagate(errp, local_err);
> +            return;
>          }
>          error_free(local_err);
>          local_err = NULL;
> @@ -117,10 +93,18 @@ static void spapr_irq_init_xics(SpaprMachineState 
> *spapr, int nr_irqs,
>          xics_spapr_init(spapr);
>      }
>  
> -    spapr->ics = spapr_ics_create(spapr, nr_irqs, &local_err);
> +    obj = object_new(TYPE_ICS_SIMPLE);
> +    object_property_add_child(OBJECT(spapr), "ics", obj, &error_abort);
> +    object_property_add_const_link(obj, ICS_PROP_XICS, OBJECT(spapr),
> +                                   &error_fatal);
> +    object_property_set_int(obj, nr_irqs, "nr-irqs",  &error_fatal);
> +    object_property_set_bool(obj, true, "realized", &local_err);
> +    if (local_err) {
> +        error_propagate(errp, local_err);
> +        return;
> +    }
>  
> -error:
> -    error_propagate(errp, local_err);
> +    spapr->ics = ICS_BASE(obj);
>  }
>  
>  #define ICS_IRQ_FREE(ics, srcno)   \

-- 
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

Attachment: signature.asc
Description: PGP signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]