diff mbox series

ppc/pnv: Remove the XICSFabric Interface from the POWER9 machine

Message ID 20191003143617.21682-1-clg@kaod.org
State New
Headers show
Series ppc/pnv: Remove the XICSFabric Interface from the POWER9 machine | expand

Commit Message

Cédric Le Goater Oct. 3, 2019, 2:36 p.m. UTC
The POWER8 PowerNV machine needs to implement a XICSFabric interface
as this is the POWER8 interrupt controller model. But the POWER9
machine uselessly inherits of XICSFabric from the common PowerNV
machine definition.

Open code machine definitions to have a better control on the
different interfaces each machine should define.

Fixes: f30c843ced50 ("ppc/pnv: Introduce PowerNV machines with fixed CPU models")
Signed-off-by: Cédric Le Goater <clg@kaod.org>
---
 hw/ppc/pnv.c | 31 ++++++++++++++-----------------
 1 file changed, 14 insertions(+), 17 deletions(-)

Comments

David Gibson Oct. 4, 2019, 12:25 a.m. UTC | #1
On Thu, Oct 03, 2019 at 04:36:17PM +0200, Cédric Le Goater wrote:
> The POWER8 PowerNV machine needs to implement a XICSFabric interface
> as this is the POWER8 interrupt controller model. But the POWER9
> machine uselessly inherits of XICSFabric from the common PowerNV
> machine definition.
> 
> Open code machine definitions to have a better control on the
> different interfaces each machine should define.
> 
> Fixes: f30c843ced50 ("ppc/pnv: Introduce PowerNV machines with fixed CPU models")
> Signed-off-by: Cédric Le Goater <clg@kaod.org>

Applied to ppc-for-4.2, thanks.

> ---
>  hw/ppc/pnv.c | 31 ++++++++++++++-----------------
>  1 file changed, 14 insertions(+), 17 deletions(-)
> 
> diff --git a/hw/ppc/pnv.c b/hw/ppc/pnv.c
> index 77a86c6a2301..7cf64b6d2533 100644
> --- a/hw/ppc/pnv.c
> +++ b/hw/ppc/pnv.c
> @@ -1485,23 +1485,21 @@ static void pnv_machine_class_init(ObjectClass *oc, void *data)
>          .parent        = TYPE_PNV9_CHIP,          \
>      }
>  
> -#define DEFINE_PNV_MACHINE_TYPE(cpu, class_initfn)      \
> -    {                                                   \
> -        .name          = MACHINE_TYPE_NAME(cpu),        \
> -        .parent        = TYPE_PNV_MACHINE,              \
> -        .instance_size = sizeof(PnvMachineState),       \
> -        .instance_init = pnv_machine_instance_init,     \
> -        .class_init    = class_initfn,                  \
> -        .interfaces = (InterfaceInfo[]) {               \
> -            { TYPE_XICS_FABRIC },                       \
> -            { TYPE_INTERRUPT_STATS_PROVIDER },          \
> -            { },                                        \
> -        },                                              \
> -    }
> -
>  static const TypeInfo types[] = {
> -    DEFINE_PNV_MACHINE_TYPE("powernv8", pnv_machine_power8_class_init),
> -    DEFINE_PNV_MACHINE_TYPE("powernv9", pnv_machine_power9_class_init),
> +    {
> +        .name          = MACHINE_TYPE_NAME("powernv9"),
> +        .parent        = TYPE_PNV_MACHINE,
> +        .class_init    = pnv_machine_power9_class_init,
> +    },
> +    {
> +        .name          = MACHINE_TYPE_NAME("powernv8"),
> +        .parent        = TYPE_PNV_MACHINE,
> +        .class_init    = pnv_machine_power8_class_init,
> +        .interfaces = (InterfaceInfo[]) {
> +            { TYPE_XICS_FABRIC },
> +            { },
> +        },
> +    },
>      {
>          .name          = TYPE_PNV_MACHINE,
>          .parent        = TYPE_MACHINE,
> @@ -1510,7 +1508,6 @@ static const TypeInfo types[] = {
>          .instance_init = pnv_machine_instance_init,
>          .class_init    = pnv_machine_class_init,
>          .interfaces = (InterfaceInfo[]) {
> -            { TYPE_XICS_FABRIC },
>              { TYPE_INTERRUPT_STATS_PROVIDER },
>              { },
>          },
diff mbox series

Patch

diff --git a/hw/ppc/pnv.c b/hw/ppc/pnv.c
index 77a86c6a2301..7cf64b6d2533 100644
--- a/hw/ppc/pnv.c
+++ b/hw/ppc/pnv.c
@@ -1485,23 +1485,21 @@  static void pnv_machine_class_init(ObjectClass *oc, void *data)
         .parent        = TYPE_PNV9_CHIP,          \
     }
 
-#define DEFINE_PNV_MACHINE_TYPE(cpu, class_initfn)      \
-    {                                                   \
-        .name          = MACHINE_TYPE_NAME(cpu),        \
-        .parent        = TYPE_PNV_MACHINE,              \
-        .instance_size = sizeof(PnvMachineState),       \
-        .instance_init = pnv_machine_instance_init,     \
-        .class_init    = class_initfn,                  \
-        .interfaces = (InterfaceInfo[]) {               \
-            { TYPE_XICS_FABRIC },                       \
-            { TYPE_INTERRUPT_STATS_PROVIDER },          \
-            { },                                        \
-        },                                              \
-    }
-
 static const TypeInfo types[] = {
-    DEFINE_PNV_MACHINE_TYPE("powernv8", pnv_machine_power8_class_init),
-    DEFINE_PNV_MACHINE_TYPE("powernv9", pnv_machine_power9_class_init),
+    {
+        .name          = MACHINE_TYPE_NAME("powernv9"),
+        .parent        = TYPE_PNV_MACHINE,
+        .class_init    = pnv_machine_power9_class_init,
+    },
+    {
+        .name          = MACHINE_TYPE_NAME("powernv8"),
+        .parent        = TYPE_PNV_MACHINE,
+        .class_init    = pnv_machine_power8_class_init,
+        .interfaces = (InterfaceInfo[]) {
+            { TYPE_XICS_FABRIC },
+            { },
+        },
+    },
     {
         .name          = TYPE_PNV_MACHINE,
         .parent        = TYPE_MACHINE,
@@ -1510,7 +1508,6 @@  static const TypeInfo types[] = {
         .instance_init = pnv_machine_instance_init,
         .class_init    = pnv_machine_class_init,
         .interfaces = (InterfaceInfo[]) {
-            { TYPE_XICS_FABRIC },
             { TYPE_INTERRUPT_STATS_PROVIDER },
             { },
         },