From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:35900) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XU4Lu-0006ov-Px for qemu-devel@nongnu.org; Tue, 16 Sep 2014 21:48:20 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1XU4Ll-00058A-Ow for qemu-devel@nongnu.org; Tue, 16 Sep 2014 21:48:14 -0400 Received: from fgwmail6.fujitsu.co.jp ([192.51.44.36]:53154) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XU4Ll-00057k-BB for qemu-devel@nongnu.org; Tue, 16 Sep 2014 21:48:05 -0400 Received: from kw-mxauth.gw.nic.fujitsu.com (unknown [10.0.237.134]) by fgwmail6.fujitsu.co.jp (Postfix) with ESMTP id 914663EE0AE for ; Wed, 17 Sep 2014 10:48:01 +0900 (JST) Received: from s3.gw.fujitsu.co.jp (s3.gw.fujitsu.co.jp [10.0.50.93]) by kw-mxauth.gw.nic.fujitsu.com (Postfix) with ESMTP id 9D31CAC01A6 for ; Wed, 17 Sep 2014 10:48:00 +0900 (JST) Received: from s00.gw.fujitsu.co.jp (s00.gw.nic.fujitsu.com [133.161.11.15]) by s3.gw.fujitsu.co.jp (Postfix) with ESMTP id 47A921DB803B for ; Wed, 17 Sep 2014 10:48:00 +0900 (JST) From: Gu Zheng Date: Wed, 17 Sep 2014 09:24:03 +0800 Message-Id: <1410917043-16334-8-git-send-email-guz.fnst@cn.fujitsu.com> In-Reply-To: <1410917043-16334-1-git-send-email-guz.fnst@cn.fujitsu.com> References: <1410917043-16334-1-git-send-email-guz.fnst@cn.fujitsu.com> Subject: [Qemu-devel] [PATCH V3 7/7] acpi/cpu-hotplug: introduce help function to keep bit setting in one place List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org, imammedo@redhat.com Cc: chen.fan.fnst@cn.fujitsu.com, Gu Zheng , isimatu.yasuaki@jp.fujitsu.com, afaerber@suse.de, tangchen@cn.fujitsu.com Introduce help function acpi_set_local_sts() to simplify acpi_cpu_plug_cb and acpi_cpu_hotplug_init, so that we can keep bit setting in one place. Signed-off-by: Gu Zheng --- hw/acpi/cpu_hotplug.c | 22 +++++++++++++++------- 1 files changed, 15 insertions(+), 7 deletions(-) diff --git a/hw/acpi/cpu_hotplug.c b/hw/acpi/cpu_hotplug.c index 7629686..d42c961 100644 --- a/hw/acpi/cpu_hotplug.c +++ b/hw/acpi/cpu_hotplug.c @@ -36,8 +36,8 @@ static const MemoryRegionOps AcpiCpuHotplug_ops = { }, }; -void acpi_cpu_plug_cb(ACPIREGS *ar, qemu_irq irq, - AcpiCpuHotplug *g, CPUState *cpu, Error **errp) +static void acpi_set_local_sts(AcpiCpuHotplug *g, CPUState *cpu, + Error **errp) { CPUClass *k = CPU_GET_CLASS(cpu); int64_t cpu_id; @@ -48,9 +48,18 @@ void acpi_cpu_plug_cb(ACPIREGS *ar, qemu_irq irq, return; } - ar->gpe.sts[0] |= ACPI_CPU_HOTPLUG_STATUS; g->sts[cpu_id / 8] |= (1 << (cpu_id % 8)); +} +void acpi_cpu_plug_cb(ACPIREGS *ar, qemu_irq irq, + AcpiCpuHotplug *g, CPUState *cpu, Error **errp) +{ + acpi_set_local_sts(g, cpu, errp); + if (*errp != NULL) { + return; + } + + ar->gpe.sts[0] |= ACPI_CPU_HOTPLUG_STATUS; acpi_update_sci(ar, irq); } @@ -60,11 +69,10 @@ void acpi_cpu_hotplug_init(MemoryRegion *parent, Object *owner, CPUState *cpu; CPU_FOREACH(cpu) { - CPUClass *cc = CPU_GET_CLASS(cpu); - int64_t id = cc->get_arch_id(cpu); + Error *local_err = NULL; - g_assert((id / 8) < ACPI_GPE_PROC_LEN); - gpe_cpu->sts[id / 8] |= (1 << (id % 8)); + acpi_set_local_sts(gpe_cpu, cpu, &local_err); + g_assert(local_err == NULL); } memory_region_init_io(&gpe_cpu->io, owner, &AcpiCpuHotplug_ops, gpe_cpu, "acpi-cpu-hotplug", ACPI_GPE_PROC_LEN); -- 1.7.7