qemu-devel
[Top][All Lists]
Advanced

[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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]