Merge tag 'kvm-s390-next-5.15-1' of git://git.kernel.org/pub/scm/linux/kernel/git...
[linux-2.6-microblaze.git] / drivers / of / of_reserved_mem.c
index 15e2417..fd3964d 100644 (file)
@@ -22,6 +22,8 @@
 #include <linux/slab.h>
 #include <linux/memblock.h>
 
+#include "of_private.h"
+
 #define MAX_RESERVED_REGIONS   64
 static struct reserved_mem reserved_mem[MAX_RESERVED_REGIONS];
 static int reserved_mem_count;
@@ -40,7 +42,7 @@ static int __init early_init_dt_alloc_reserved_memory_arch(phys_addr_t size,
 
        *res_base = base;
        if (nomap)
-               return memblock_remove(base, size);
+               return memblock_mark_nomap(base, size);
 
        return memblock_reserve(base, size);
 }
@@ -134,9 +136,9 @@ static int __init __reserved_mem_alloc_size(unsigned long node,
                        ret = early_init_dt_alloc_reserved_memory_arch(size,
                                        align, start, end, nomap, &base);
                        if (ret == 0) {
-                               pr_debug("allocated memory for '%s' node: base %pa, size %ld MiB\n",
+                               pr_debug("allocated memory for '%s' node: base %pa, size %lu MiB\n",
                                        uname, &base,
-                                       (unsigned long)size / SZ_1M);
+                                       (unsigned long)(size / SZ_1M));
                                break;
                        }
                        len -= t_len;
@@ -146,8 +148,8 @@ static int __init __reserved_mem_alloc_size(unsigned long node,
                ret = early_init_dt_alloc_reserved_memory_arch(size, align,
                                                        0, 0, nomap, &base);
                if (ret == 0)
-                       pr_debug("allocated memory for '%s' node: base %pa, size %ld MiB\n",
-                               uname, &base, (unsigned long)size / SZ_1M);
+                       pr_debug("allocated memory for '%s' node: base %pa, size %lu MiB\n",
+                               uname, &base, (unsigned long)(size / SZ_1M));
        }
 
        if (base == 0) {
@@ -273,9 +275,10 @@ void __init fdt_init_reserved_mem(void)
                        if (err != 0 && err != -ENOENT) {
                                pr_info("node %s compatible matching fail\n",
                                        rmem->name);
-                               memblock_free(rmem->base, rmem->size);
                                if (nomap)
-                                       memblock_add(rmem->base, rmem->size);
+                                       memblock_clear_nomap(rmem->base, rmem->size);
+                               else
+                                       memblock_free(rmem->base, rmem->size);
                        }
                }
        }