Blame SOURCES/kvm-spapr-Correct-inverted-test-in-spapr_pc_dimm_node.patch

1bdc94
From 300af272a7b1546ccd40face0c3f6d325f81aa49 Mon Sep 17 00:00:00 2001
1bdc94
From: David Gibson <dgibson@redhat.com>
1bdc94
Date: Tue, 17 Jul 2018 01:36:38 +0200
1bdc94
Subject: [PATCH 46/89] spapr: Correct inverted test in spapr_pc_dimm_node()
1bdc94
1bdc94
RH-Author: David Gibson <dgibson@redhat.com>
1bdc94
Message-id: <20180717013638.11012-1-dgibson@redhat.com>
1bdc94
Patchwork-id: 81371
1bdc94
O-Subject: [RHEL7.6 qemu-kvm-rhev PATCH] spapr: Correct inverted test in spapr_pc_dimm_node()
1bdc94
Bugzilla: 1598287
1bdc94
RH-Acked-by: Igor Mammedov <imammedo@redhat.com>
1bdc94
RH-Acked-by: Thomas Huth <thuth@redhat.com>
1bdc94
RH-Acked-by: Laurent Vivier <lvivier@redhat.com>
1bdc94
1bdc94
From: David Gibson <david@gibson.dropbear.id.au>
1bdc94
1bdc94
This function was introduced between v2.11 and v2.12 to replace obsolete
1bdc94
ways of specifying the NUMA nodes for DIMMs.  It's used to find the correct
1bdc94
node for an LMB, by locating which DIMM object it lies within.
1bdc94
1bdc94
Unfortunately, one of the checks is inverted, so we check whether the
1bdc94
address is less than two different things, rather than actually checking
1bdc94
a range.  This introduced a regression, meaning that after a reboot qemu
1bdc94
will advertise incorrect node information for memory to the guest.
1bdc94
1bdc94
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
1bdc94
Reviewed-by: Greg Kurz <groug@kaod.org>
1bdc94
Reviewed-by: Igor Mammedov <imammedo@redhat.com>
1bdc94
(cherry picked from commit ccc2cef8b3f1dedd059924eb8ec1a87eff8ef607)
1bdc94
1bdc94
Signed-off-by: David Gibson <dgibson@redhat.com>
1bdc94
Signed-off-by: Miroslav Rezanina <mrezanin@redhat.com>
1bdc94
---
1bdc94
 hw/ppc/spapr.c | 2 +-
1bdc94
 1 file changed, 1 insertion(+), 1 deletion(-)
1bdc94
1bdc94
diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c
1bdc94
index a580334..5f26aea 100644
1bdc94
--- a/hw/ppc/spapr.c
1bdc94
+++ b/hw/ppc/spapr.c
1bdc94
@@ -659,7 +659,7 @@ static uint32_t spapr_pc_dimm_node(MemoryDeviceInfoList *list, ram_addr_t addr)
1bdc94
         if (value && value->type == MEMORY_DEVICE_INFO_KIND_DIMM) {
1bdc94
             PCDIMMDeviceInfo *pcdimm_info = value->u.dimm.data;
1bdc94
 
1bdc94
-            if (pcdimm_info->addr >= addr &&
1bdc94
+            if (addr >= pcdimm_info->addr &&
1bdc94
                 addr < (pcdimm_info->addr + pcdimm_info->size)) {
1bdc94
                 return pcdimm_info->node;
1bdc94
             }
1bdc94
-- 
1bdc94
1.8.3.1
1bdc94