qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [Qemu-ppc] [PATCH] spapr: Correct inverted test in spap


From: Greg Kurz
Subject: Re: [Qemu-devel] [Qemu-ppc] [PATCH] spapr: Correct inverted test in spapr_pc_dimm_node()
Date: Tue, 10 Jul 2018 09:33:30 +0200

On Tue, 10 Jul 2018 11:52:57 +1000
David Gibson <address@hidden> wrote:

> This function was introduced between v2.11 and v2.12 to replace obsolete
> ways of specifying the NUMA nodes for DIMMs.  It's used to find the correct
> node for an LMB, by locating which DIMM object it lies within.
> 
> Unfortunately, one of the checks is inverted, so we check whether the
> address is less than two different things, rather than actually checking
> a range.  This introduced a regression, meaning that after a reboot qemu
> will advertise incorrect node information for memory to the guest.
> 
> Signed-off-by: David Gibson <address@hidden>
> ---

Reviewed-by: Greg Kurz <address@hidden>

>  hw/ppc/spapr.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c
> index 3f5e1d3ec2..421b2dd09b 100644
> --- a/hw/ppc/spapr.c
> +++ b/hw/ppc/spapr.c
> @@ -665,7 +665,7 @@ static uint32_t spapr_pc_dimm_node(MemoryDeviceInfoList 
> *list, ram_addr_t addr)
>          if (value && value->type == MEMORY_DEVICE_INFO_KIND_DIMM) {
>              PCDIMMDeviceInfo *pcdimm_info = value->u.dimm.data;
>  
> -            if (pcdimm_info->addr >= addr &&
> +            if (addr >= pcdimm_info->addr &&
>                  addr < (pcdimm_info->addr + pcdimm_info->size)) {
>                  return pcdimm_info->node;
>              }




reply via email to

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