From: Igor Mammedov <imammedo@redhat.com>
To: qemu-devel@nongnu.org
Cc: "Alexander Graf" <agraf@suse.de>,
"David Gibson" <david@gibson.dropbear.id.au>,
"Hervé Poussineau" <hpoussin@reactos.org>,
"Edgar E. Iglesias" <edgar.iglesias@gmail.com>,
"open list:ppce500" <qemu-ppc@nongnu.org>
Subject: [Qemu-devel] [PATCH v2 14/24] ppc: spapr: use cpu type name directly
Date: Mon, 9 Oct 2017 21:51:01 +0200 [thread overview]
Message-ID: <1507578671-158758-15-git-send-email-imammedo@redhat.com> (raw)
In-Reply-To: <1507578671-158758-1-git-send-email-imammedo@redhat.com>
replace sPAPRCPUCoreClass::cpu_class with cpu type name
since it were needed just to get that at points it were
accessed.
Signed-off-by: Igor Mammedov <imammedo@redhat.com>
Reviewed-by: Greg Kurz <groug@kaod.org>
Acked-by: David Gibson <david@gibson.dropbear.id.au>
---
include/hw/ppc/spapr_cpu_core.h | 2 +-
hw/ppc/spapr.c | 6 ++----
hw/ppc/spapr_cpu_core.c | 13 +++++--------
target/ppc/kvm.c | 2 +-
4 files changed, 9 insertions(+), 14 deletions(-)
diff --git a/include/hw/ppc/spapr_cpu_core.h b/include/hw/ppc/spapr_cpu_core.h
index 66dcf52..264ce68 100644
--- a/include/hw/ppc/spapr_cpu_core.h
+++ b/include/hw/ppc/spapr_cpu_core.h
@@ -34,7 +34,7 @@ typedef struct sPAPRCPUCore {
typedef struct sPAPRCPUCoreClass {
DeviceClass parent_class;
- ObjectClass *cpu_class;
+ const char *cpu_type;
} sPAPRCPUCoreClass;
char *spapr_get_cpu_core_type(const char *model);
diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c
index c7a0310..fda2bbe 100644
--- a/hw/ppc/spapr.c
+++ b/hw/ppc/spapr.c
@@ -3149,8 +3149,7 @@ void spapr_core_release(DeviceState *dev)
if (smc->pre_2_10_has_unused_icps) {
sPAPRCPUCore *sc = SPAPR_CPU_CORE(OBJECT(dev));
sPAPRCPUCoreClass *scc = SPAPR_CPU_CORE_GET_CLASS(OBJECT(cc));
- const char *typename = object_class_get_name(scc->cpu_class);
- size_t size = object_type_get_instance_size(typename);
+ size_t size = object_type_get_instance_size(scc->cpu_type);
int i;
for (i = 0; i < cc->nr_threads; i++) {
@@ -3246,8 +3245,7 @@ static void spapr_core_plug(HotplugHandler *hotplug_dev, DeviceState *dev,
if (smc->pre_2_10_has_unused_icps) {
sPAPRCPUCoreClass *scc = SPAPR_CPU_CORE_GET_CLASS(OBJECT(cc));
- const char *typename = object_class_get_name(scc->cpu_class);
- size_t size = object_type_get_instance_size(typename);
+ size_t size = object_type_get_instance_size(scc->cpu_type);
int i;
for (i = 0; i < cc->nr_threads; i++) {
diff --git a/hw/ppc/spapr_cpu_core.c b/hw/ppc/spapr_cpu_core.c
index 550d320..a008056 100644
--- a/hw/ppc/spapr_cpu_core.c
+++ b/hw/ppc/spapr_cpu_core.c
@@ -90,8 +90,7 @@ static void spapr_cpu_core_unrealizefn(DeviceState *dev, Error **errp)
{
sPAPRCPUCore *sc = SPAPR_CPU_CORE(OBJECT(dev));
sPAPRCPUCoreClass *scc = SPAPR_CPU_CORE_GET_CLASS(OBJECT(dev));
- const char *typename = object_class_get_name(scc->cpu_class);
- size_t size = object_type_get_instance_size(typename);
+ size_t size = object_type_get_instance_size(scc->cpu_type);
CPUCore *cc = CPU_CORE(dev);
int i;
@@ -152,8 +151,7 @@ static void spapr_cpu_core_realize(DeviceState *dev, Error **errp)
sPAPRCPUCore *sc = SPAPR_CPU_CORE(OBJECT(dev));
sPAPRCPUCoreClass *scc = SPAPR_CPU_CORE_GET_CLASS(OBJECT(dev));
CPUCore *cc = CPU_CORE(OBJECT(dev));
- const char *typename = object_class_get_name(scc->cpu_class);
- size_t size = object_type_get_instance_size(typename);
+ size_t size = object_type_get_instance_size(scc->cpu_type);
Error *local_err = NULL;
void *obj;
int i, j;
@@ -172,7 +170,7 @@ static void spapr_cpu_core_realize(DeviceState *dev, Error **errp)
obj = sc->threads + i * size;
- object_initialize(obj, size, typename);
+ object_initialize(obj, size, scc->cpu_type);
cs = CPU(obj);
cpu = POWERPC_CPU(cs);
cs->cpu_index = cc->core_id + i;
@@ -230,14 +228,13 @@ void spapr_cpu_core_class_init(ObjectClass *oc, void *data)
dc->realize = spapr_cpu_core_realize;
dc->unrealize = spapr_cpu_core_unrealizefn;
dc->props = spapr_cpu_core_properties;
- scc->cpu_class = cpu_class_by_name(TYPE_POWERPC_CPU, data);
- g_assert(scc->cpu_class);
+ scc->cpu_type = data;
}
#define DEFINE_SPAPR_CPU_CORE_TYPE(cpu_model) \
{ \
.parent = TYPE_SPAPR_CPU_CORE, \
- .class_data = (void *) cpu_model, \
+ .class_data = (void *) POWERPC_CPU_TYPE_NAME(cpu_model), \
.class_init = spapr_cpu_core_class_init, \
.name = SPAPR_CPU_CORE_TYPE_NAME(cpu_model), \
}
diff --git a/target/ppc/kvm.c b/target/ppc/kvm.c
index 171d3d8..c2152ed 100644
--- a/target/ppc/kvm.c
+++ b/target/ppc/kvm.c
@@ -2514,7 +2514,7 @@ static int kvm_ppc_register_host_cpu_type(void)
type_info.instance_size = sizeof(sPAPRCPUCore);
type_info.instance_init = NULL;
type_info.class_init = spapr_cpu_core_class_init;
- type_info.class_data = (void *) "host";
+ type_info.class_data = (void *) POWERPC_CPU_TYPE_NAME("host");
type_register(&type_info);
g_free((void *)type_info.name);
#endif
--
2.7.4
next prev parent reply other threads:[~2017-10-09 19:51 UTC|newest]
Thread overview: 47+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-10-09 19:50 [Qemu-devel] [PATCH v2 00/24] generalize parsing of cpu_model (part 3/PPC) Igor Mammedov
2017-10-09 19:50 ` [Qemu-devel] [PATCH v2 01/24] qom: update doc comment for type_register[_static]() Igor Mammedov
2017-10-09 19:50 ` [Qemu-devel] [PATCH v2 02/24] qom: introduce type_register_static_array() Igor Mammedov
2017-10-09 19:50 ` [Qemu-devel] [PATCH v2 03/24] qom: add helper macro DEFINE_TYPES() Igor Mammedov
2017-10-09 19:50 ` [Qemu-devel] [PATCH v2 04/24] ppc: mpc8544ds/e500plat: use generic cpu_model parsing Igor Mammedov
2017-10-09 19:50 ` [Qemu-devel] [PATCH v2 05/24] ppc: mac_newworld: " Igor Mammedov
2017-10-09 19:50 ` [Qemu-devel] [PATCH v2 06/24] ppc: mac_oldworld: " Igor Mammedov
2017-10-09 19:50 ` [Qemu-devel] [PATCH v2 07/24] ppc: bamboo: " Igor Mammedov
2017-10-09 19:50 ` [Qemu-devel] [PATCH v2 08/24] ppc: replace cpu_model with cpu_type on ref405ep, taihu boards Igor Mammedov
2017-10-09 19:50 ` [Qemu-devel] [PATCH v2 09/24] ppc: virtex-ml507: replace cpu_model with cpu_type Igor Mammedov
2017-10-09 19:50 ` [Qemu-devel] [PATCH v2 10/24] ppc: 40p/prep: " Igor Mammedov
2017-10-09 19:50 ` [Qemu-devel] [PATCH v2 11/24] ppc: spapr: replace ppc_cpu_parse_features() with cpu_parse_cpu_model() Igor Mammedov
2017-10-09 19:50 ` [Qemu-devel] [PATCH v2 12/24] ppc: move '-cpu foo, compat=xxx' parsing into ppc_cpu_parse_featurestr() Igor Mammedov
2017-10-10 2:02 ` David Gibson
2017-10-09 19:51 ` [Qemu-devel] [PATCH v2 13/24] ppc: spapr: define core types statically Igor Mammedov
2017-10-10 2:04 ` David Gibson
2017-10-10 7:29 ` [Qemu-devel] [Qemu-ppc] " Greg Kurz
2017-10-12 13:10 ` Greg Kurz
2017-10-12 14:58 ` Igor Mammedov
2017-10-12 15:20 ` Greg Kurz
2017-10-12 16:01 ` Igor Mammedov
2017-10-11 17:21 ` [Qemu-devel] " Philippe Mathieu-Daudé
2017-10-09 19:51 ` Igor Mammedov [this message]
2017-10-12 15:48 ` [Qemu-devel] [PATCH v2 14/24] fixup! ppc: spapr: use cpu type name directly Igor Mammedov
2017-10-13 7:26 ` [Qemu-devel] [Qemu-ppc] " Greg Kurz
2017-10-09 19:51 ` [Qemu-devel] [PATCH v2 15/24] ppc: spapr: register 'host' core type along with the rest of core types Igor Mammedov
2017-10-09 19:51 ` [Qemu-devel] [PATCH v2 16/24] ppc: spapr: use cpu model names as tcg defaults instead of aliases Igor Mammedov
2017-10-09 19:51 ` [Qemu-devel] [PATCH v2 17/24] ppc: move ppc_cpu_lookup_alias() before its first user Igor Mammedov
2017-10-10 2:05 ` David Gibson
2017-10-11 17:15 ` Philippe Mathieu-Daudé
2017-10-09 19:51 ` [Qemu-devel] [PATCH v2 18/24] ppc: spapr: use generic cpu_model parsing Igor Mammedov
2017-10-10 2:07 ` David Gibson
2017-10-12 15:50 ` [Qemu-devel] [PATCH v2 18/24] fixup! " Igor Mammedov
2017-10-12 22:24 ` David Gibson
2017-10-23 4:43 ` Alexey Kardashevskiy
2017-10-09 19:51 ` [Qemu-devel] [PATCH v2 19/24] ppc: pnv: " Igor Mammedov
2017-10-10 2:10 ` David Gibson
2017-10-09 19:51 ` [Qemu-devel] [PATCH v2 20/24] ppc: pnv: normalize core/chip type names Igor Mammedov
2017-10-09 19:51 ` [Qemu-devel] [PATCH v2 21/24] ppc: pnv: drop PnvCoreClass::cpu_oc field Igor Mammedov
2017-10-11 17:24 ` Philippe Mathieu-Daudé
2017-10-09 19:51 ` [Qemu-devel] [PATCH v2 22/24] ppc: pnv: define core types statically Igor Mammedov
2017-10-09 19:51 ` [Qemu-devel] [PATCH v2 23/24] ppc: pnv: drop PnvChipClass::cpu_model field Igor Mammedov
2017-10-11 17:23 ` Philippe Mathieu-Daudé
2017-10-09 19:51 ` [Qemu-devel] [PATCH v2 24/24] ppc: pnv: consolidate type definitions and batch register them Igor Mammedov
2017-10-10 2:21 ` [Qemu-devel] [PATCH v2 00/24] generalize parsing of cpu_model (part 3/PPC) David Gibson
2017-10-10 11:38 ` Igor Mammedov
2017-10-10 12:21 ` David Gibson
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1507578671-158758-15-git-send-email-imammedo@redhat.com \
--to=imammedo@redhat.com \
--cc=agraf@suse.de \
--cc=david@gibson.dropbear.id.au \
--cc=edgar.iglesias@gmail.com \
--cc=hpoussin@reactos.org \
--cc=qemu-devel@nongnu.org \
--cc=qemu-ppc@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).