OSDN Git Service

powerpc/numa: Look up device node in of_get_usable_memory()
authorNathan Fontenot <nfont@linux.vnet.ibm.com>
Fri, 1 Dec 2017 16:46:44 +0000 (10:46 -0600)
committerMichael Ellerman <mpe@ellerman.id.au>
Tue, 16 Jan 2018 07:23:48 +0000 (18:23 +1100)
Look up the device node for the usable memory property instead
of having it passed in as a parameter. This changes precedes an update
in which the calling routines for of_get_usable_memory() will not have
the device node pointer to pass in.

Signed-off-by: Nathan Fontenot <nfont@linux.vnet.ibm.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
arch/powerpc/mm/numa.c

index a0214aa..baba640 100644 (file)
@@ -184,11 +184,19 @@ static const __be32 *of_get_associativity(struct device_node *dev)
  * it exists (the property exists only in kexec/kdump kernels,
  * added by kexec-tools)
  */
-static const __be32 *of_get_usable_memory(struct device_node *memory)
+static const __be32 *of_get_usable_memory(void)
 {
+       struct device_node *memory;
        const __be32 *prop;
        u32 len;
+
+       memory = of_find_node_by_path("/ibm,dynamic-reconfiguration-memory");
+       if (!memory)
+               return NULL;
+
        prop = of_get_property(memory, "linux,drconf-usable-memory", &len);
+       of_node_put(memory);
+
        if (!prop || len < sizeof(unsigned int))
                return NULL;
        return prop;
@@ -674,7 +682,7 @@ static void __init parse_drconf_memory(struct device_node *memory)
                return;
 
        /* check if this is a kexec/kdump kernel */
-       usm = of_get_usable_memory(memory);
+       usm = of_get_usable_memory();
        if (usm != NULL)
                is_kexec_kdump = 1;