[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-ppc] [Qemu-devel] [PATCH v1 03/11] pc: factor out pc-dimm chec
From: |
Igor Mammedov |
Subject: |
Re: [Qemu-ppc] [Qemu-devel] [PATCH v1 03/11] pc: factor out pc-dimm checks into pc_dimm_pre_plug() |
Date: |
Wed, 13 Jun 2018 12:07:33 +0200 |
On Mon, 11 Jun 2018 14:16:47 +0200
David Hildenbrand <address@hidden> wrote:
> We can perform these checks before the device is actually realized.
>
> Signed-off-by: David Hildenbrand <address@hidden>
Reviewed-by: Igor Mammedov <address@hidden>
> ---
> hw/i386/pc.c | 44 ++++++++++++++++++++++++++------------------
> 1 file changed, 26 insertions(+), 18 deletions(-)
>
> diff --git a/hw/i386/pc.c b/hw/i386/pc.c
> index f3befe6721..85c040482e 100644
> --- a/hw/i386/pc.c
> +++ b/hw/i386/pc.c
> @@ -1674,6 +1674,29 @@ void ioapic_init_gsi(GSIState *gsi_state, const char
> *parent_name)
> }
> }
>
> +static void pc_dimm_pre_plug(HotplugHandler *hotplug_dev, DeviceState *dev,
> + Error **errp)
> +{
> + const PCMachineState *pcms = PC_MACHINE(hotplug_dev);
> + const bool is_nvdimm = object_dynamic_cast(OBJECT(dev), TYPE_NVDIMM);
> +
> + /*
> + * When -no-acpi is used with Q35 machine type, no ACPI is built,
> + * but pcms->acpi_dev is still created. Check !acpi_enabled in
> + * addition to cover this case.
> + */
> + if (!pcms->acpi_dev || !acpi_enabled) {
> + error_setg(errp,
> + "memory hotplug is not enabled: missing acpi device or
> acpi disabled");
> + return;
> + }
> +
> + if (is_nvdimm && !pcms->acpi_nvdimm_state.is_enabled) {
> + error_setg(errp, "nvdimm is not enabled: missing 'nvdimm' in '-M'");
> + return;
> + }
> +}
> +
> static void pc_dimm_plug(HotplugHandler *hotplug_dev,
> DeviceState *dev, Error **errp)
> {
> @@ -1696,23 +1719,6 @@ static void pc_dimm_plug(HotplugHandler *hotplug_dev,
> align = memory_region_get_alignment(mr);
> }
>
> - /*
> - * When -no-acpi is used with Q35 machine type, no ACPI is built,
> - * but pcms->acpi_dev is still created. Check !acpi_enabled in
> - * addition to cover this case.
> - */
> - if (!pcms->acpi_dev || !acpi_enabled) {
> - error_setg(&local_err,
> - "memory hotplug is not enabled: missing acpi device or
> acpi disabled");
> - goto out;
> - }
> -
> - if (is_nvdimm && !pcms->acpi_nvdimm_state.is_enabled) {
> - error_setg(&local_err,
> - "nvdimm is not enabled: missing 'nvdimm' in '-M'");
> - goto out;
> - }
> -
> pc_dimm_memory_plug(dev, MACHINE(pcms), align, &local_err);
> if (local_err) {
> goto out;
> @@ -2006,7 +2012,9 @@ static void pc_cpu_pre_plug(HotplugHandler *hotplug_dev,
> static void pc_machine_device_pre_plug_cb(HotplugHandler *hotplug_dev,
> DeviceState *dev, Error **errp)
> {
> - if (object_dynamic_cast(OBJECT(dev), TYPE_CPU)) {
> + if (object_dynamic_cast(OBJECT(dev), TYPE_PC_DIMM)) {
> + pc_dimm_pre_plug(hotplug_dev, dev, errp);
> + } else if (object_dynamic_cast(OBJECT(dev), TYPE_CPU)) {
> pc_cpu_pre_plug(hotplug_dev, dev, errp);
> }
> }
- [Qemu-ppc] [PATCH v1 00/11] pc-dimm: next bunch of cleanups, David Hildenbrand, 2018/06/11
- [Qemu-ppc] [PATCH v1 01/11] pc-dimm: remove leftover "struct pc_dimms_capacity", David Hildenbrand, 2018/06/11
- [Qemu-ppc] [PATCH v1 02/11] nvdimm: no need to overwrite get_vmstate_memory_region(), David Hildenbrand, 2018/06/11
- [Qemu-ppc] [PATCH v1 03/11] pc: factor out pc-dimm checks into pc_dimm_pre_plug(), David Hildenbrand, 2018/06/11
- [Qemu-ppc] [PATCH v1 06/11] pc-dimm: don't allow to access "size" before the device was realized, David Hildenbrand, 2018/06/11
- Re: [Qemu-ppc] [PATCH v1 06/11] pc-dimm: don't allow to access "size" before the device was realized, David Gibson, 2018/06/11
- Re: [Qemu-ppc] [Qemu-devel] [PATCH v1 06/11] pc-dimm: don't allow to access "size" before the device was realized, Igor Mammedov, 2018/06/13
- Re: [Qemu-ppc] [Qemu-devel] [PATCH v1 06/11] pc-dimm: don't allow to access "size" before the device was realized, Igor Mammedov, 2018/06/14
- Re: [Qemu-ppc] [Qemu-devel] [PATCH v1 06/11] pc-dimm: don't allow to access "size" before the device was realized, David Hildenbrand, 2018/06/14
- Re: [Qemu-ppc] [Qemu-devel] [PATCH v1 06/11] pc-dimm: don't allow to access "size" before the device was realized, Igor Mammedov, 2018/06/15
- Re: [Qemu-ppc] [Qemu-devel] [PATCH v1 06/11] pc-dimm: don't allow to access "size" before the device was realized, David Hildenbrand, 2018/06/15