Browse Source

sh: Add a machvec callback for early memblock reservations.

This adds in a callback to the machvec to allow platforms to do early
reservations through memblock.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Paul Mundt 14 years ago
parent
commit
2f5998610a
2 changed files with 9 additions and 2 deletions
  1. 1 0
      arch/sh/include/asm/machvec.h
  2. 8 2
      arch/sh/mm/init.c

+ 1 - 0
arch/sh/include/asm/machvec.h

@@ -31,6 +31,7 @@ struct sh_machine_vector {
 	int (*mv_mode_pins)(void);
 	int (*mv_mode_pins)(void);
 
 
 	void (*mv_mem_init)(void);
 	void (*mv_mem_init)(void);
+	void (*mv_mem_reserve)(void);
 };
 };
 
 
 extern struct sh_machine_vector sh_mv;
 extern struct sh_machine_vector sh_mv;

+ 8 - 2
arch/sh/mm/init.c

@@ -2,7 +2,7 @@
  * linux/arch/sh/mm/init.c
  * linux/arch/sh/mm/init.c
  *
  *
  *  Copyright (C) 1999  Niibe Yutaka
  *  Copyright (C) 1999  Niibe Yutaka
- *  Copyright (C) 2002 - 2010  Paul Mundt
+ *  Copyright (C) 2002 - 2011  Paul Mundt
  *
  *
  *  Based on linux/arch/i386/mm/init.c:
  *  Based on linux/arch/i386/mm/init.c:
  *   Copyright (C) 1995  Linus Torvalds
  *   Copyright (C) 1995  Linus Torvalds
@@ -325,11 +325,17 @@ void __init paging_init(void)
 	int nid;
 	int nid;
 
 
 	memblock_init();
 	memblock_init();
-
 	sh_mv.mv_mem_init();
 	sh_mv.mv_mem_init();
 
 
 	early_reserve_mem();
 	early_reserve_mem();
 
 
+	/*
+	 * Once the early reservations are out of the way, give the
+	 * platforms a chance to kick out some memory.
+	 */
+	if (sh_mv.mv_mem_reserve)
+		sh_mv.mv_mem_reserve();
+
 	memblock_enforce_memory_limit(memory_limit);
 	memblock_enforce_memory_limit(memory_limit);
 	memblock_analyze();
 	memblock_analyze();