[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,