[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH] pc: fail memory hot-plug/unplug with -no-acpi a
From: |
Paolo Bonzini |
Subject: |
Re: [Qemu-devel] [PATCH] pc: fail memory hot-plug/unplug with -no-acpi and Q35 machine type |
Date: |
Fri, 22 Dec 2017 17:12:07 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.5.0 |
On 22/12/2017 02:51, Haozhong Zhang wrote:
> When -no-acpi option is used with Q35 machine type, no guest ACPI is
> built, but the ACPI device is still created, so only checking the
> presence of ACPI device before memory plug/unplug is not enough in
> such cases. Check whether ACPI is disabled globally in addition and
> fail memory plug/unplug if it's disabled.
>
> Signed-off-by: Haozhong Zhang <address@hidden>
> ---
> hw/i386/pc.c | 18 ++++++++++++++----
> 1 file changed, 14 insertions(+), 4 deletions(-)
>
> diff --git a/hw/i386/pc.c b/hw/i386/pc.c
> index 3fcf318a95..55686bf5d8 100644
> --- a/hw/i386/pc.c
> +++ b/hw/i386/pc.c
> @@ -1695,9 +1695,14 @@ static void pc_dimm_plug(HotplugHandler *hotplug_dev,
> align = memory_region_get_alignment(mr);
> }
>
> - if (!pcms->acpi_dev) {
> + /*
> + * 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");
> + "memory hotplug is not enabled: missing acpi device or
> acpi disabled");
> goto out;
> }
>
> @@ -1729,9 +1734,14 @@ static void pc_dimm_unplug_request(HotplugHandler
> *hotplug_dev,
> Error *local_err = NULL;
> PCMachineState *pcms = PC_MACHINE(hotplug_dev);
>
> - if (!pcms->acpi_dev) {
> + /*
> + * 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");
> + "memory hotplug is not enabled: missing acpi device or
> acpi disabled");
> goto out;
> }
>
>
Queued, thanks.
Paolo