Merge branch 'akpm' (patches from Andrew)
[platform/kernel/linux-rpi.git] / arch / riscv / mm / init.c
index f6e6286..787c75f 100644 (file)
@@ -541,12 +541,39 @@ void mark_rodata_ro(void)
 }
 #endif
 
+static void __init resource_init(void)
+{
+       struct memblock_region *region;
+
+       for_each_memblock(memory, region) {
+               struct resource *res;
+
+               res = memblock_alloc(sizeof(struct resource), SMP_CACHE_BYTES);
+               if (!res)
+                       panic("%s: Failed to allocate %zu bytes\n", __func__,
+                             sizeof(struct resource));
+
+               if (memblock_is_nomap(region)) {
+                       res->name = "reserved";
+                       res->flags = IORESOURCE_MEM;
+               } else {
+                       res->name = "System RAM";
+                       res->flags = IORESOURCE_SYSTEM_RAM | IORESOURCE_BUSY;
+               }
+               res->start = __pfn_to_phys(memblock_region_memory_base_pfn(region));
+               res->end = __pfn_to_phys(memblock_region_memory_end_pfn(region)) - 1;
+
+               request_resource(&iomem_resource, res);
+       }
+}
+
 void __init paging_init(void)
 {
        setup_vm_final();
        sparse_init();
        setup_zero_page();
        zone_sizes_init();
+       resource_init();
 }
 
 #ifdef CONFIG_SPARSEMEM_VMEMMAP