qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH V3 1/7] acpi/cpu: add cpu hotplug callback funct


From: Igor Mammedov
Subject: Re: [Qemu-devel] [PATCH V3 1/7] acpi/cpu: add cpu hotplug callback function to match hotplug_handler API
Date: Fri, 26 Sep 2014 15:08:28 +0200

On Wed, 17 Sep 2014 09:23:57 +0800
Gu Zheng <address@hidden> wrote:

> ---
> v2:
>  -add errp argument to catch error.
>  -return error instead of aborting if cpu id is invalid.
>  -make acpi_cpu_plug_cb as a wrapper around AcpiCpuHotplug_add.
> ---
> 
> Signed-off-by: Gu Zheng <address@hidden>
> ---
>  hw/acpi/cpu_hotplug.c         |   17 +++++++++++++++++
>  include/hw/acpi/cpu_hotplug.h |    3 +++
>  2 files changed, 20 insertions(+), 0 deletions(-)
> 
> diff --git a/hw/acpi/cpu_hotplug.c b/hw/acpi/cpu_hotplug.c
> index 2ad83a0..dfd6de5 100644
> --- a/hw/acpi/cpu_hotplug.c
> +++ b/hw/acpi/cpu_hotplug.c
> @@ -36,6 +36,23 @@ static const MemoryRegionOps AcpiCpuHotplug_ops = {
>      },
>  };
>  
> +void acpi_cpu_plug_cb(ACPIREGS *ar, qemu_irq irq,
> +                      AcpiCpuHotplug *g, CPUState *cpu, Error **errp)
s/CPUState *cpu/DeviceState *dev/ like it's done for other handlers
and do cast to CPU inside.

> +{
> +    CPUClass *k = CPU_GET_CLASS(cpu);
> +    int64_t cpu_id;
> +
> +    cpu_id = k->get_arch_id(cpu);
> +    if ((cpu_id / 8) >= ACPI_GPE_PROC_LEN) {
> +        error_setg(errp, "acpi: invalid cpu id: %" PRIi64, cpu_id);
> +        return;
> +    }
> +
> +    AcpiCpuHotplug_add(&ar->gpe, g, cpu);
> +
> +    acpi_update_sci(ar, irq);
> +}
> +
>  void AcpiCpuHotplug_add(ACPIGPE *gpe, AcpiCpuHotplug *g, CPUState *cpu)
>  {
>      CPUClass *k = CPU_GET_CLASS(cpu);
> diff --git a/include/hw/acpi/cpu_hotplug.h b/include/hw/acpi/cpu_hotplug.h
> index 9e5d30c..166edb0 100644
> --- a/include/hw/acpi/cpu_hotplug.h
> +++ b/include/hw/acpi/cpu_hotplug.h
> @@ -20,6 +20,9 @@ typedef struct AcpiCpuHotplug {
>      uint8_t sts[ACPI_GPE_PROC_LEN];
>  } AcpiCpuHotplug;
>  
> +void acpi_cpu_plug_cb(ACPIREGS *ar, qemu_irq irq,
> +                      AcpiCpuHotplug *g, CPUState *dev, Error **errp);
> +
>  void AcpiCpuHotplug_add(ACPIGPE *gpe, AcpiCpuHotplug *g, CPUState *cpu);
>  
>  void AcpiCpuHotplug_init(MemoryRegion *parent, Object *owner,




reply via email to

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