From: Igor Mammedov <imammedo@redhat.com>
To: Xiao Guangrong <guangrong.xiao@linux.intel.com>
Cc: pbonzini@redhat.com, gleb@kernel.org, mtosatti@redhat.com,
stefanha@redhat.com, mst@redhat.com, rth@twiddle.net,
ehabkost@redhat.com, dan.j.williams@intel.com,
kvm@vger.kernel.org, qemu-devel@nongnu.org
Subject: Re: [PATCH 01/14] qdev: hotplug: drop HotplugHandler.post_plug callback
Date: Wed, 9 Nov 2016 17:37:49 +0100 [thread overview]
Message-ID: <20161109173749.0b7b9c30@nial.brq.redhat.com> (raw)
In-Reply-To: <1478517229-140028-2-git-send-email-guangrong.xiao@linux.intel.com>
On Mon, 7 Nov 2016 19:13:36 +0800
Xiao Guangrong <guangrong.xiao@linux.intel.com> wrote:
> as nvdimm acpi is okay to build fit when the nvdimm device
> has not been 'realized'
>
> Suggested-by: Igor Mammedov <imammedo@redhat.com>
> Signed-off-by: Xiao Guangrong <guangrong.xiao@linux.intel.com>
Reviewed-by: Igor Mammedov <imammedo@redhat.com>
> ---
> hw/acpi/nvdimm.c | 6 +-----
> hw/core/hotplug.c | 11 -----------
> hw/core/qdev.c | 20 ++++----------------
> hw/i386/pc.c | 23 ++++-------------------
> include/hw/hotplug.h | 11 -----------
> 5 files changed, 9 insertions(+), 62 deletions(-)
>
> diff --git a/hw/acpi/nvdimm.c b/hw/acpi/nvdimm.c
> index 602ec54..623bb36 100644
> --- a/hw/acpi/nvdimm.c
> +++ b/hw/acpi/nvdimm.c
> @@ -38,11 +38,7 @@ static int nvdimm_plugged_device_list(Object *obj, void *opaque)
> GSList **list = opaque;
>
> if (object_dynamic_cast(obj, TYPE_NVDIMM)) {
> - DeviceState *dev = DEVICE(obj);
> -
> - if (dev->realized) { /* only realized NVDIMMs matter */
> - *list = g_slist_append(*list, DEVICE(obj));
> - }
> + *list = g_slist_append(*list, DEVICE(obj));
> }
>
> object_child_foreach(obj, nvdimm_plugged_device_list, opaque);
> diff --git a/hw/core/hotplug.c b/hw/core/hotplug.c
> index ab34c19..17ac986 100644
> --- a/hw/core/hotplug.c
> +++ b/hw/core/hotplug.c
> @@ -35,17 +35,6 @@ void hotplug_handler_plug(HotplugHandler *plug_handler,
> }
> }
>
> -void hotplug_handler_post_plug(HotplugHandler *plug_handler,
> - DeviceState *plugged_dev,
> - Error **errp)
> -{
> - HotplugHandlerClass *hdc = HOTPLUG_HANDLER_GET_CLASS(plug_handler);
> -
> - if (hdc->post_plug) {
> - hdc->post_plug(plug_handler, plugged_dev, errp);
> - }
> -}
> -
> void hotplug_handler_unplug_request(HotplugHandler *plug_handler,
> DeviceState *plugged_dev,
> Error **errp)
> diff --git a/hw/core/qdev.c b/hw/core/qdev.c
> index d835e62..5783442 100644
> --- a/hw/core/qdev.c
> +++ b/hw/core/qdev.c
> @@ -945,21 +945,10 @@ static void device_set_realized(Object *obj, bool value, Error **errp)
> goto child_realize_fail;
> }
> }
> -
> if (dev->hotplugged) {
> device_reset(dev);
> }
> dev->pending_deleted_event = false;
> - dev->realized = value;
> -
> - if (hotplug_ctrl) {
> - hotplug_handler_post_plug(hotplug_ctrl, dev, &local_err);
> - }
> -
> - if (local_err != NULL) {
> - dev->realized = value;
> - goto post_realize_fail;
> - }
> } else if (!value && dev->realized) {
> Error **local_errp = NULL;
> QLIST_FOREACH(bus, &dev->child_bus, sibling) {
> @@ -976,14 +965,13 @@ static void device_set_realized(Object *obj, bool value, Error **errp)
> }
> dev->pending_deleted_event = true;
> DEVICE_LISTENER_CALL(unrealize, Reverse, dev);
> + }
>
> - if (local_err != NULL) {
> - goto fail;
> - }
> -
> - dev->realized = value;
> + if (local_err != NULL) {
> + goto fail;
> }
>
> + dev->realized = value;
> return;
>
> child_realize_fail:
> diff --git a/hw/i386/pc.c b/hw/i386/pc.c
> index c011552..8ef3920 100644
> --- a/hw/i386/pc.c
> +++ b/hw/i386/pc.c
> @@ -1715,22 +1715,16 @@ static void pc_dimm_plug(HotplugHandler *hotplug_dev,
> goto out;
> }
>
> + if (object_dynamic_cast(OBJECT(dev), TYPE_NVDIMM)) {
> + nvdimm_acpi_hotplug(&pcms->acpi_nvdimm_state);
> + }
> +
> hhc = HOTPLUG_HANDLER_GET_CLASS(pcms->acpi_dev);
> hhc->plug(HOTPLUG_HANDLER(pcms->acpi_dev), dev, &error_abort);
> out:
> error_propagate(errp, local_err);
> }
>
> -static void pc_dimm_post_plug(HotplugHandler *hotplug_dev,
> - DeviceState *dev, Error **errp)
> -{
> - PCMachineState *pcms = PC_MACHINE(hotplug_dev);
> -
> - if (object_dynamic_cast(OBJECT(dev), TYPE_NVDIMM)) {
> - nvdimm_acpi_hotplug(&pcms->acpi_nvdimm_state);
> - }
> -}
> -
> static void pc_dimm_unplug_request(HotplugHandler *hotplug_dev,
> DeviceState *dev, Error **errp)
> {
> @@ -2008,14 +2002,6 @@ static void pc_machine_device_plug_cb(HotplugHandler *hotplug_dev,
> }
> }
>
> -static void pc_machine_device_post_plug_cb(HotplugHandler *hotplug_dev,
> - DeviceState *dev, Error **errp)
> -{
> - if (object_dynamic_cast(OBJECT(dev), TYPE_PC_DIMM)) {
> - pc_dimm_post_plug(hotplug_dev, dev, errp);
> - }
> -}
> -
> static void pc_machine_device_unplug_request_cb(HotplugHandler *hotplug_dev,
> DeviceState *dev, Error **errp)
> {
> @@ -2320,7 +2306,6 @@ static void pc_machine_class_init(ObjectClass *oc, void *data)
> mc->reset = pc_machine_reset;
> hc->pre_plug = pc_machine_device_pre_plug_cb;
> hc->plug = pc_machine_device_plug_cb;
> - hc->post_plug = pc_machine_device_post_plug_cb;
> hc->unplug_request = pc_machine_device_unplug_request_cb;
> hc->unplug = pc_machine_device_unplug_cb;
> nc->nmi_monitor_handler = x86_nmi;
> diff --git a/include/hw/hotplug.h b/include/hw/hotplug.h
> index 10ca5b6..1a0516a 100644
> --- a/include/hw/hotplug.h
> +++ b/include/hw/hotplug.h
> @@ -47,7 +47,6 @@ typedef void (*hotplug_fn)(HotplugHandler *plug_handler,
> * @parent: Opaque parent interface.
> * @pre_plug: pre plug callback called at start of device.realize(true)
> * @plug: plug callback called at end of device.realize(true).
> - * @post_pug: post plug callback called after device is successfully plugged.
> * @unplug_request: unplug request callback.
> * Used as a means to initiate device unplug for devices that
> * require asynchronous unplug handling.
> @@ -62,7 +61,6 @@ typedef struct HotplugHandlerClass {
> /* <public> */
> hotplug_fn pre_plug;
> hotplug_fn plug;
> - hotplug_fn post_plug;
> hotplug_fn unplug_request;
> hotplug_fn unplug;
> } HotplugHandlerClass;
> @@ -86,15 +84,6 @@ void hotplug_handler_pre_plug(HotplugHandler *plug_handler,
> Error **errp);
>
> /**
> - * hotplug_handler_post_plug:
> - *
> - * Call #HotplugHandlerClass.post_plug callback of @plug_handler.
> - */
> -void hotplug_handler_post_plug(HotplugHandler *plug_handler,
> - DeviceState *plugged_dev,
> - Error **errp);
> -
> -/**
> * hotplug_handler_unplug_request:
> *
> * Calls #HotplugHandlerClass.unplug_request callback of @plug_handler.
next prev parent reply other threads:[~2016-11-09 16:37 UTC|newest]
Thread overview: 43+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-11-07 11:13 [PATCH 00/14] improve nvdimm hotplug Xiao Guangrong
2016-11-07 11:13 ` [PATCH 01/14] qdev: hotplug: drop HotplugHandler.post_plug callback Xiao Guangrong
2016-11-07 15:30 ` Stefan Hajnoczi
2016-11-09 16:37 ` Igor Mammedov [this message]
2016-11-07 11:13 ` [PATCH 02/14] nvdimm acpi: drop the lock of fit buffer Xiao Guangrong
2016-11-07 15:30 ` Stefan Hajnoczi
2016-11-09 16:38 ` Igor Mammedov
2016-11-07 11:13 ` [PATCH 03/14] pc: memhp: move nvdimm hotplug out of memory hotplug Xiao Guangrong
2016-11-07 15:31 ` Stefan Hajnoczi
2016-11-09 16:38 ` Igor Mammedov
2016-11-07 11:13 ` [PATCH 04/14] pc: memhp: stop handling nvdimm hotplug in pc_dimm_unplug Xiao Guangrong
2016-11-07 15:32 ` Stefan Hajnoczi
2016-11-09 16:38 ` Igor Mammedov
2016-11-07 11:13 ` [PATCH 05/14] nvdimm acpi: clean up nvdimm_build_acpi Xiao Guangrong
2016-11-07 15:32 ` Stefan Hajnoczi
2016-11-09 16:39 ` Igor Mammedov
2016-11-07 11:13 ` [PATCH 06/14] docs: improve the doc of Read FIT method Xiao Guangrong
2016-11-07 15:32 ` Stefan Hajnoczi
2016-11-09 16:39 ` Igor Mammedov
2016-11-07 11:13 ` [PATCH 07/14] nvdimm acpi: rename nvdimm_plugged_device_list Xiao Guangrong
2016-11-07 15:33 ` Stefan Hajnoczi
2016-11-09 16:39 ` Igor Mammedov
2016-11-07 11:13 ` [PATCH 08/14] nvdimm acpi: cleanup nvdimm_build_fit Xiao Guangrong
2016-11-07 15:33 ` Stefan Hajnoczi
2016-11-09 16:40 ` Igor Mammedov
2016-11-07 11:13 ` [PATCH 09/14] nvdimm acpi: rename nvdimm_acpi_hotplug Xiao Guangrong
2016-11-07 15:33 ` Stefan Hajnoczi
2016-11-09 16:40 ` Igor Mammedov
2016-11-07 11:13 ` [PATCH 10/14] nvdimm acpi: define DSM return codes Xiao Guangrong
2016-11-07 15:34 ` Stefan Hajnoczi
2016-11-09 16:40 ` Igor Mammedov
2016-11-07 11:13 ` [PATCH 11/14] nvdimm acpi: fix two comments Xiao Guangrong
2016-11-07 15:34 ` Stefan Hajnoczi
2016-11-09 16:41 ` Igor Mammedov
2016-11-07 11:13 ` [PATCH 12/14] nvdimm acpi: rename nvdimm_dsm_reserved_root Xiao Guangrong
2016-11-07 15:34 ` Stefan Hajnoczi
2016-11-09 16:41 ` Igor Mammedov
2016-11-07 11:13 ` [PATCH 13/14] nvdimm acpi: use aml_name_decl to define named object Xiao Guangrong
2016-11-07 15:34 ` Stefan Hajnoczi
2016-11-09 16:41 ` Igor Mammedov
2016-11-07 11:13 ` [PATCH 14/14] nvdimm acpi: introduce NVDIMM_DSM_MEMORY_SIZE Xiao Guangrong
2016-11-07 15:35 ` Stefan Hajnoczi
2016-11-09 16:41 ` Igor Mammedov
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20161109173749.0b7b9c30@nial.brq.redhat.com \
--to=imammedo@redhat.com \
--cc=dan.j.williams@intel.com \
--cc=ehabkost@redhat.com \
--cc=gleb@kernel.org \
--cc=guangrong.xiao@linux.intel.com \
--cc=kvm@vger.kernel.org \
--cc=mst@redhat.com \
--cc=mtosatti@redhat.com \
--cc=pbonzini@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=rth@twiddle.net \
--cc=stefanha@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).