Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c44e8d5e authored by Atsushi Nemoto's avatar Atsushi Nemoto Committed by Ralf Baechle
Browse files

[MIPS] prom_free_prom_memory cleanup



Current prom_free_prom_memory() implementations are almost same as
free_init_pages(), or no-op.  Make free_init_pages() extern (again)
and make prom_free_prom_memory() use it.

Signed-off-by: default avatarAtsushi Nemoto <anemo@mba.ocn.ne.jp>
Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
parent 2fa7937b
Loading
Loading
Loading
Loading
+4 −14
Original line number Original line Diff line number Diff line
@@ -141,30 +141,20 @@ void __init prom_meminit(void)
	}
	}
}
}


unsigned long __init prom_free_prom_memory(void)
void __init prom_free_prom_memory(void)
{
{
	unsigned long freed = 0;
	unsigned long addr;
	unsigned long addr;
	int i;
	int i;


	if (prom_flags & PROM_FLAG_DONT_FREE_TEMP)
	if (prom_flags & PROM_FLAG_DONT_FREE_TEMP)
		return 0;
		return;


	for (i = 0; i < boot_mem_map.nr_map; i++) {
	for (i = 0; i < boot_mem_map.nr_map; i++) {
		if (boot_mem_map.map[i].type != BOOT_MEM_ROM_DATA)
		if (boot_mem_map.map[i].type != BOOT_MEM_ROM_DATA)
			continue;
			continue;


		addr = boot_mem_map.map[i].addr;
		addr = boot_mem_map.map[i].addr;
		while (addr < boot_mem_map.map[i].addr
		free_init_pages("prom memory",
			      + boot_mem_map.map[i].size) {
				addr, addr + boot_mem_map.map[i].size);
			ClearPageReserved(virt_to_page(__va(addr)));
			init_page_count(virt_to_page(__va(addr)));
			free_page((unsigned long)__va(addr));
			addr += PAGE_SIZE;
			freed += PAGE_SIZE;
	}
	}
}
}
	printk(KERN_INFO "Freeing prom memory: %ldkb freed\n", freed >> 10);

	return freed;
}
+1 −2
Original line number Original line Diff line number Diff line
@@ -149,9 +149,8 @@ int get_ethernet_addr(char *ethernet_addr)
	return 0;
	return 0;
}
}


unsigned long __init prom_free_prom_memory(void)
void __init prom_free_prom_memory(void)
{
{
	return 0;
}
}


EXPORT_SYMBOL(prom_getcmdline);
EXPORT_SYMBOL(prom_getcmdline);
+1 −2
Original line number Original line Diff line number Diff line
@@ -204,8 +204,7 @@ void __init prom_init(void)
	add_memory_region(0x0, memsz, BOOT_MEM_RAM);
	add_memory_region(0x0, memsz, BOOT_MEM_RAM);
}
}


unsigned long __init prom_free_prom_memory(void)
void __init prom_free_prom_memory(void)
{
{
	/* Nothing to do! */
	/* Nothing to do! */
	return 0;
}
}
+1 −2
Original line number Original line Diff line number Diff line
@@ -59,9 +59,8 @@ void __init prom_init(void)
#endif
#endif
}
}


unsigned long __init prom_free_prom_memory(void)
void __init prom_free_prom_memory(void)
{
{
	return 0;
}
}


#if defined(CONFIG_DDB5477)
#if defined(CONFIG_DDB5477)
+3 −14
Original line number Original line Diff line number Diff line
@@ -92,9 +92,9 @@ void __init prom_meminit(u32 magic)
		rex_setup_memory_region();
		rex_setup_memory_region();
}
}


unsigned long __init prom_free_prom_memory(void)
void __init prom_free_prom_memory(void)
{
{
	unsigned long addr, end;
	unsigned long end;


	/*
	/*
	 * Free everything below the kernel itself but leave
	 * Free everything below the kernel itself but leave
@@ -114,16 +114,5 @@ unsigned long __init prom_free_prom_memory(void)
#endif
#endif
		end = __pa(&_text);
		end = __pa(&_text);


	addr = PAGE_SIZE;
	free_init_pages("unused PROM memory", PAGE_SIZE, end);
	while (addr < end) {
		ClearPageReserved(virt_to_page(__va(addr)));
		init_page_count(virt_to_page(__va(addr)));
		free_page((unsigned long)__va(addr));
		addr += PAGE_SIZE;
	}

	printk("Freeing unused PROM memory: %ldkb freed\n",
	       (end - PAGE_SIZE) >> 10);

	return end - PAGE_SIZE;
}
}
Loading