On Thu, Dec 19, 2019 at 07:11:51PM +0100, Cédric Le Goater wrote:
> From: Greg Kurz <gr...@kaod.org>
> 
> Set it at chip creation and forward it to the cores. This allows to drop
> a call to qdev_get_machine().
> 
> Signed-off-by: Greg Kurz <gr...@kaod.org>
> Signed-off-by: Cédric Le Goater <c...@kaod.org>

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

But will need rebase.

> ---
>  include/hw/ppc/pnv.h | 1 +
>  hw/ppc/pnv.c         | 8 +++++---
>  2 files changed, 6 insertions(+), 3 deletions(-)
> 
> diff --git a/include/hw/ppc/pnv.h b/include/hw/ppc/pnv.h
> index 8b957dfb5736..4c13d4394a11 100644
> --- a/include/hw/ppc/pnv.h
> +++ b/include/hw/ppc/pnv.h
> @@ -48,6 +48,7 @@ typedef struct PnvChip {
>      uint64_t     ram_size;
>  
>      uint32_t     nr_cores;
> +    uint32_t     nr_threads;
>      uint64_t     cores_mask;
>      PnvCore      **cores;
>  
> diff --git a/hw/ppc/pnv.c b/hw/ppc/pnv.c
> index 915c80a24b3e..e638cdc93091 100644
> --- a/hw/ppc/pnv.c
> +++ b/hw/ppc/pnv.c
> @@ -791,6 +791,8 @@ static void pnv_init(MachineState *machine)
>                                  &error_fatal);
>          object_property_set_int(chip, machine->smp.cores,
>                                  "nr-cores", &error_fatal);
> +        object_property_set_int(chip, machine->smp.threads,
> +                                "nr-threads", &error_fatal);
>          /*
>           * TODO: Only the MMIO range should be of interest for the
>           * controllers
> @@ -1529,7 +1531,6 @@ static void pnv_chip_core_sanitize(PnvChip *chip, Error 
> **errp)
>  
>  static void pnv_chip_core_realize(PnvChip *chip, Error **errp)
>  {
> -    MachineState *ms = MACHINE(qdev_get_machine());
>      Error *error = NULL;
>      PnvChipClass *pcc = PNV_CHIP_GET_CLASS(chip);
>      const char *typename = pnv_chip_core_typename(chip);
> @@ -1565,8 +1566,8 @@ static void pnv_chip_core_realize(PnvChip *chip, Error 
> **errp)
>          object_property_add_child(OBJECT(chip), core_name, OBJECT(pnv_core),
>                                    &error_abort);
>          chip->cores[i] = pnv_core;
> -        object_property_set_int(OBJECT(pnv_core), ms->smp.threads, 
> "nr-threads",
> -                                &error_fatal);
> +        object_property_set_int(OBJECT(pnv_core), chip->nr_threads,
> +                                "nr-threads", &error_fatal);
>          object_property_set_int(OBJECT(pnv_core), core_hwid,
>                                  CPU_CORE_PROP_CORE_ID, &error_fatal);
>          object_property_set_int(OBJECT(pnv_core),
> @@ -1609,6 +1610,7 @@ static Property pnv_chip_properties[] = {
>      DEFINE_PROP_UINT64("cores-mask", PnvChip, cores_mask, 0x0),
>      DEFINE_PROP_LINK("system-memory", PnvChip, system_memory,
>                       TYPE_MEMORY_REGION, MemoryRegion *),
> +    DEFINE_PROP_UINT32("nr-threads", PnvChip, nr_threads, 1),
>      DEFINE_PROP_END_OF_LIST(),
>  };
>  

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