mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-11 03:24:58 -06:00
s390x/cpu: Tolerate max_cpus
Once hotplug is enabled, interrupts may come in for CPUs with an address > smp_cpus. Allocate for this and allow search routines to look beyond smp_cpus. Signed-off-by: Matthew Rosato <mjrosato@linux.vnet.ibm.com> Message-Id: <1457112875-5209-5-git-send-email-mjrosato@linux.vnet.ibm.com> Reviewed-by: David Hildenbrand <dahi@linux.vnet.ibm.com> Signed-off-by: Cornelia Huck <cornelia.huck@de.ibm.com>
This commit is contained in:
parent
c6644fc88b
commit
25637d31f2
1 changed files with 6 additions and 5 deletions
|
@ -58,15 +58,16 @@
|
||||||
#define S390_TOD_CLOCK_VALUE_MISSING 0x00
|
#define S390_TOD_CLOCK_VALUE_MISSING 0x00
|
||||||
#define S390_TOD_CLOCK_VALUE_PRESENT 0x01
|
#define S390_TOD_CLOCK_VALUE_PRESENT 0x01
|
||||||
|
|
||||||
static S390CPU **ipi_states;
|
static S390CPU **cpu_states;
|
||||||
|
|
||||||
S390CPU *s390_cpu_addr2state(uint16_t cpu_addr)
|
S390CPU *s390_cpu_addr2state(uint16_t cpu_addr)
|
||||||
{
|
{
|
||||||
if (cpu_addr >= smp_cpus) {
|
if (cpu_addr >= max_cpus) {
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
return ipi_states[cpu_addr];
|
/* Fast lookup via CPU ID */
|
||||||
|
return cpu_states[cpu_addr];
|
||||||
}
|
}
|
||||||
|
|
||||||
void s390_init_ipl_dev(const char *kernel_filename,
|
void s390_init_ipl_dev(const char *kernel_filename,
|
||||||
|
@ -101,14 +102,14 @@ void s390_init_cpus(MachineState *machine)
|
||||||
machine->cpu_model = "host";
|
machine->cpu_model = "host";
|
||||||
}
|
}
|
||||||
|
|
||||||
ipi_states = g_malloc(sizeof(S390CPU *) * smp_cpus);
|
cpu_states = g_malloc0(sizeof(S390CPU *) * max_cpus);
|
||||||
|
|
||||||
for (i = 0; i < smp_cpus; i++) {
|
for (i = 0; i < smp_cpus; i++) {
|
||||||
S390CPU *cpu;
|
S390CPU *cpu;
|
||||||
|
|
||||||
cpu = cpu_s390x_init(machine->cpu_model);
|
cpu = cpu_s390x_init(machine->cpu_model);
|
||||||
|
|
||||||
ipi_states[i] = cpu;
|
cpu_states[i] = cpu;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue