From patchwork Mon Nov 17 05:03:17 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tang Chen X-Patchwork-Id: 411390 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id BF7741400F1 for ; Mon, 17 Nov 2014 16:04:52 +1100 (AEDT) Received: from localhost ([::1]:46107 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XqEUc-0003X6-Rs for incoming@patchwork.ozlabs.org; Mon, 17 Nov 2014 00:04:50 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:35029) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XqETw-0002Hy-J5 for qemu-devel@nongnu.org; Mon, 17 Nov 2014 00:04:13 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1XqETr-0004UE-UU for qemu-devel@nongnu.org; Mon, 17 Nov 2014 00:04:08 -0500 Received: from [59.151.112.132] (port=42928 helo=heian.cn.fujitsu.com) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XqETr-0004TR-Iy for qemu-devel@nongnu.org; Mon, 17 Nov 2014 00:04:03 -0500 X-IronPort-AV: E=Sophos;i="5.04,848,1406563200"; d="scan'208";a="43478359" Received: from unknown (HELO edo.cn.fujitsu.com) ([10.167.33.5]) by heian.cn.fujitsu.com with ESMTP; 17 Nov 2014 13:00:50 +0800 Received: from G08CNEXCHPEKD02.g08.fujitsu.local (localhost.localdomain [127.0.0.1]) by edo.cn.fujitsu.com (8.14.3/8.13.1) with ESMTP id sAH53mAG026968; Mon, 17 Nov 2014 13:03:48 +0800 Received: from tangchen.g08.fujitsu.local (10.167.226.71) by G08CNEXCHPEKD02.g08.fujitsu.local (10.167.33.89) with Microsoft SMTP Server (TLS) id 14.3.181.6; Mon, 17 Nov 2014 13:04:05 +0800 From: Tang Chen To: , , , Date: Mon, 17 Nov 2014 13:03:17 +0800 Message-ID: <1416200597-11925-6-git-send-email-tangchen@cn.fujitsu.com> X-Mailer: git-send-email 1.9.3 In-Reply-To: <1416200597-11925-1-git-send-email-tangchen@cn.fujitsu.com> References: <1416200597-11925-1-git-send-email-tangchen@cn.fujitsu.com> MIME-Version: 1.0 X-Originating-IP: [10.167.226.71] X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 59.151.112.132 Cc: guz.fnst@cn.fujitsu.com, hutao@cn.fujitsu.com, isimatu.yasuaki@jp.fujitsu.com, zhugh.fnst@cn.fujitsu.com, tangchen@cn.fujitsu.com Subject: [Qemu-devel] [PATCH Part1 5/5] acpi, piix4: Add unplug cb for piix4. X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Memory and CPU hot unplug are both asynchronize procedures. When the unplug operation happens, unplug request cb is called first. And when ghest OS finished handling unplug, unplug cb will be called to do the real removal of device. This patch adds hotunplug cb for piix4, and memory and CPU hot unplug will base on it. Signed-off-by: Tang Chen --- hw/acpi/piix4.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/hw/acpi/piix4.c b/hw/acpi/piix4.c index 78c0a6d..353f91a 100644 --- a/hw/acpi/piix4.c +++ b/hw/acpi/piix4.c @@ -369,6 +369,13 @@ static void piix4_device_unplug_request_cb(HotplugHandler *hotplug_dev, } } +static void piix4_device_unplug_cb(HotplugHandler *hotplug_dev, + DeviceState *dev, Error **errp) +{ + error_setg(errp, "acpi: device unplug for not supported device" + " type: %s", object_get_typename(OBJECT(dev))); +} + static void piix4_update_bus_hotplug(PCIBus *pci_bus, void *opaque) { PIIX4PMState *s = opaque; @@ -606,6 +613,7 @@ static void piix4_pm_class_init(ObjectClass *klass, void *data) dc->hotpluggable = false; hc->plug = piix4_device_plug_cb; hc->unplug_request = piix4_device_unplug_request_cb; + hc->unplug = piix4_device_unplug_cb; adevc->ospm_status = piix4_ospm_status; }