[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v3 06/10] hw/s390x: Replace global smp variables wit
From: |
Like Xu |
Subject: |
[Qemu-devel] [PATCH v3 06/10] hw/s390x: Replace global smp variables with machine smp properties |
Date: |
Sun, 19 May 2019 04:54:24 +0800 |
The global smp variables in s390x are replaced with smp machine properties.
A local variable of the same name would be introduced in the declaration
phase if it's used widely in the context OR replace it on the spot if it's
only used once. No semantic changes.
Signed-off-by: Like Xu <address@hidden>
---
hw/s390x/s390-virtio-ccw.c | 3 ++-
hw/s390x/sclp.c | 2 +-
target/s390x/cpu.c | 3 +++
target/s390x/excp_helper.c | 5 +++++
4 files changed, 11 insertions(+), 2 deletions(-)
diff --git a/hw/s390x/s390-virtio-ccw.c b/hw/s390x/s390-virtio-ccw.c
index ed1fe7a93e..692ad6e372 100644
--- a/hw/s390x/s390-virtio-ccw.c
+++ b/hw/s390x/s390-virtio-ccw.c
@@ -83,7 +83,7 @@ static void s390_init_cpus(MachineState *machine)
/* initialize possible_cpus */
mc->possible_cpu_arch_ids(machine);
- for (i = 0; i < smp_cpus; i++) {
+ for (i = 0; i < machine->smp.cpus; i++) {
s390x_new_cpu(machine->cpu_type, i, &error_fatal);
}
}
@@ -410,6 +410,7 @@ static CpuInstanceProperties
s390_cpu_index_to_props(MachineState *ms,
static const CPUArchIdList *s390_possible_cpu_arch_ids(MachineState *ms)
{
int i;
+ unsigned int max_cpus = ms->smp.max_cpus;
if (ms->possible_cpus) {
g_assert(ms->possible_cpus && ms->possible_cpus->len == max_cpus);
diff --git a/hw/s390x/sclp.c b/hw/s390x/sclp.c
index 4510a800cb..fac7c3bb6c 100644
--- a/hw/s390x/sclp.c
+++ b/hw/s390x/sclp.c
@@ -64,7 +64,7 @@ static void read_SCP_info(SCLPDevice *sclp, SCCB *sccb)
prepare_cpu_entries(sclp, read_info->entries, &cpu_count);
read_info->entries_cpu = cpu_to_be16(cpu_count);
read_info->offset_cpu = cpu_to_be16(offsetof(ReadInfo, entries));
- read_info->highest_cpu = cpu_to_be16(max_cpus - 1);
+ read_info->highest_cpu = cpu_to_be16(machine->smp.max_cpus - 1);
read_info->ibc_val = cpu_to_be32(s390_get_ibc_val());
diff --git a/target/s390x/cpu.c b/target/s390x/cpu.c
index b1df63d82c..f1e5c0d9c3 100644
--- a/target/s390x/cpu.c
+++ b/target/s390x/cpu.c
@@ -37,6 +37,7 @@
#include "hw/qdev-properties.h"
#ifndef CONFIG_USER_ONLY
#include "hw/hw.h"
+#include "hw/boards.h"
#include "sysemu/arch_init.h"
#include "sysemu/sysemu.h"
#endif
@@ -193,6 +194,8 @@ static void s390_cpu_realizefn(DeviceState *dev, Error
**errp)
}
#if !defined(CONFIG_USER_ONLY)
+ MachineState *ms = MACHINE(qdev_get_machine());
+ unsigned int max_cpus = ms->smp.max_cpus;
if (cpu->env.core_id >= max_cpus) {
error_setg(&err, "Unable to add CPU with core-id: %" PRIu32
", maximum core-id: %d", cpu->env.core_id,
diff --git a/target/s390x/excp_helper.c b/target/s390x/excp_helper.c
index 3a467b72c5..1c6938effc 100644
--- a/target/s390x/excp_helper.c
+++ b/target/s390x/excp_helper.c
@@ -31,6 +31,7 @@
#ifndef CONFIG_USER_ONLY
#include "sysemu/sysemu.h"
#include "hw/s390x/s390_flic.h"
+#include "hw/boards.h"
#endif
void QEMU_NORETURN tcg_s390_program_interrupt(CPUS390XState *env, uint32_t
code,
@@ -300,6 +301,10 @@ static void do_ext_interrupt(CPUS390XState *env)
g_assert(cpu_addr < S390_MAX_CPUS);
lowcore->cpu_addr = cpu_to_be16(cpu_addr);
clear_bit(cpu_addr, env->emergency_signals);
+#ifndef CONFIG_USER_ONLY
+ MachineState *ms = MACHINE(qdev_get_machine());
+ unsigned int max_cpus = ms->smp.max_cpus;
+#endif
if (bitmap_empty(env->emergency_signals, max_cpus)) {
env->pending_int &= ~INTERRUPT_EMERGENCY_SIGNAL;
}
--
2.21.0
- [Qemu-devel] [PATCH v3 00/10] Refactor cpu topo into machine properties, Like Xu, 2019/05/19
- [Qemu-devel] [PATCH v3 01/10] hw/boards: Add struct CpuTopology to MachineState, Like Xu, 2019/05/19
- [Qemu-devel] [PATCH v3 03/10] general: Replace global smp variables with smp machine properties, Like Xu, 2019/05/19
- [Qemu-devel] [PATCH v3 02/10] machine: Refactor smp-related call chains to pass MachineState, Like Xu, 2019/05/19
- [Qemu-devel] [PATCH v3 06/10] hw/s390x: Replace global smp variables with machine smp properties,
Like Xu <=
- [Qemu-devel] [PATCH v3 05/10] hw/riscv: Replace global smp variables with machine smp properties, Like Xu, 2019/05/19
- [Qemu-devel] [PATCH v3 09/10] hw: Replace global smp variables with MachineState for all remaining archs, Like Xu, 2019/05/19
- [Qemu-devel] [PATCH v3 07/10] hw/i386: Replace global smp variables with machine smp properties, Like Xu, 2019/05/19
- [Qemu-devel] [PATCH v3 10/10] vl.c: Replace smp global variables with smp machine properties, Like Xu, 2019/05/19
- [Qemu-devel] [PATCH v3 04/10] hw/ppc: Replace global smp variables with machine smp properties, Like Xu, 2019/05/19
- [Qemu-devel] [PATCH v3 08/10] hw/arm: Replace global smp variables with machine smp properties, Like Xu, 2019/05/19
- Re: [Qemu-devel] [PATCH v3 00/10] Refactor cpu topo into machine properties, Like Xu, 2019/05/26