qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH 6/8] [PATCH RFC v3] s390-qemu: cpu hotplug - s39


From: Alexander Graf
Subject: Re: [Qemu-devel] [PATCH 6/8] [PATCH RFC v3] s390-qemu: cpu hotplug - s390 cpu init improvements for hotplug
Date: Thu, 5 Sep 2013 14:51:43 +0200

On 01.08.2013, at 16:12, Jason J. Herne wrote:

> From: "Jason J. Herne" <address@hidden>
> 
>    s390_new_cpu is created to encapsulate the creation of a new QOM S390CPU
>    object given a cpuid and a model string.
> 
>    All actual cpu initialization code is moved from boot time specific 
> functions to
>    s390_cpu_initfn (qom init routine) or to s390_new_cpu. This is done to 
> allow us
>    to use the same basic code path for a cpu created at boot time and one 
> created
>    during a hotplug operation.
> 
> Signed-off-by: Jason J. Herne <address@hidden>
> ---
> hw/s390x/s390-virtio.c |   25 ++++++++++++-------------
> target-s390x/cpu.c     |    4 ++--
> target-s390x/cpu.h     |    1 +
> target-s390x/helper.c  |   12 ++++++++++++
> 4 files changed, 27 insertions(+), 15 deletions(-)
> 
> diff --git a/hw/s390x/s390-virtio.c b/hw/s390x/s390-virtio.c
> index 5ad9cf3..103f32e 100644
> --- a/hw/s390x/s390-virtio.c
> +++ b/hw/s390x/s390-virtio.c
> @@ -56,11 +56,16 @@ static S390CPU **ipi_states;
> 
> void s390_cpu_set_ipistate(uint16_t cpu_addr, S390CPU *state)
> {
> -    ipi_states[cpu_addr] = state;
> +    if (cpu_addr < max_cpus) {

Ah, here you add the checks back in. Works for me.

> +        ipi_states[cpu_addr] = state;
> +    }
> }
> 
> S390CPU *s390_cpu_addr2state(uint16_t cpu_addr)
> {
> +    if (cpu_addr >= max_cpus) {
> +        return NULL;
> +    }
>     return ipi_states[cpu_addr];
> }
> 
> @@ -197,19 +202,13 @@ void s390_init_cpus(const char *cpu_model)
>         cpu_model = "host";
>     }
> 
> -    ipi_states = g_malloc(sizeof(S390CPU *) * smp_cpus);
> -
> -    for (i = 0; i < smp_cpus; i++) {
> -        S390CPU *cpu;
> -        CPUState *cs;
> +    ipi_states = g_malloc(sizeof(S390CPU *) * max_cpus);

g_new is easier :).


Alex




reply via email to

[Prev in Thread] Current Thread [Next in Thread]