powerpc/mm/drconf: Use NUMA_NO_NODE on failures instead of node 0
authorAneesh Kumar K.V <aneesh.kumar@linux.ibm.com>
Mon, 1 Jul 2019 14:36:24 +0000 (20:06 +0530)
committerMichael Ellerman <mpe@ellerman.id.au>
Thu, 4 Jul 2019 14:27:31 +0000 (00:27 +1000)
If we fail to parse the associativity array we should default to
NUMA_NO_NODE instead of NODE 0. Rest of the code fallback to the
right default if we find the numa node value NUMA_NO_NODE.

Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.ibm.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
arch/powerpc/mm/numa.c

index 26f479e6c8ede12283e86b0176d9599d87daa775..b1ecfb850b5a9978a43bb63cb19df99de09a7e75 100644 (file)
@@ -436,17 +436,19 @@ static int of_get_assoc_arrays(struct assoc_arrays *aa)
 static int of_drconf_to_nid_single(struct drmem_lmb *lmb)
 {
        struct assoc_arrays aa = { .arrays = NULL };
-       int default_nid = 0;
+       int default_nid = NUMA_NO_NODE;
        int nid = default_nid;
        int rc, index;
 
+       if (min_common_depth < 0)
+               return default_nid;
+
        rc = of_get_assoc_arrays(&aa);
        if (rc)
                return default_nid;
 
-       if (min_common_depth > 0 && min_common_depth <= aa.array_sz &&
-           !(lmb->flags & DRCONF_MEM_AI_INVALID) &&
-           lmb->aa_index < aa.n_arrays) {
+       if (min_common_depth <= aa.array_sz &&
+           !(lmb->flags & DRCONF_MEM_AI_INVALID) && lmb->aa_index < aa.n_arrays) {
                index = lmb->aa_index * aa.array_sz + min_common_depth - 1;
                nid = of_read_number(&aa.arrays[index], 1);