Skip to contentSkip to conversation

Remove ARM meminfo

PATCH Superseded Laura Abbott 9 participants 16 messages Feb 5, 2014 – Feb 11, 2014

Subsystems (9)

v2 of 5 Superseded Latest is v5 →

lore
Share & tools
lore
#0 lore raw

v2 cover Remove ARM meminfo

Hi,

This is v2 of the patch to get rid of meminfo. This should cover all the bases. Testing would be appreciated.

Thanks,
Laura

Laura Abbott (2):
mm/memblock: add memblock_get_current_limit
arm: Get rid of meminfo

 arch/arm/include/asm/mach/arch.h         |    4 +-
 arch/arm/include/asm/memblock.h          |    3 +-
 arch/arm/include/asm/setup.h             |   23 ------
 arch/arm/kernel/atags_parse.c            |    5 +-
 arch/arm/kernel/setup.c                  |   30 ++------
 arch/arm/mach-clps711x/board-clep7312.c  |    7 +-
 arch/arm/mach-clps711x/board-edb7211.c   |   10 +--
 arch/arm/mach-clps711x/board-p720t.c     |    2 +-
 arch/arm/mach-footbridge/cats-hw.c       |    2 +-
 arch/arm/mach-footbridge/netwinder-hw.c  |    2 +-
 arch/arm/mach-msm/board-halibut.c        |    6 --
 arch/arm/mach-msm/board-mahimahi.c       |   13 +---
 arch/arm/mach-msm/board-msm7x30.c        |    3 +-
 arch/arm/mach-msm/board-sapphire.c       |   13 ++--
 arch/arm/mach-msm/board-trout.c          |    8 +--
 arch/arm/mach-orion5x/common.c           |    3 +-
 arch/arm/mach-orion5x/common.h           |    3 +-
 arch/arm/mach-pxa/cm-x300.c              |    3 +-
 arch/arm/mach-pxa/corgi.c                |   10 +--
 arch/arm/mach-pxa/eseries.c              |    9 +--
 arch/arm/mach-pxa/poodle.c               |    8 +--
 arch/arm/mach-pxa/spitz.c                |    9 +--
 arch/arm/mach-pxa/tosa.c                 |    8 +--
 arch/arm/mach-realview/core.c            |   11 +--
 arch/arm/mach-realview/core.h            |    3 +-
 arch/arm/mach-realview/realview_pb1176.c |    8 +--
 arch/arm/mach-realview/realview_pbx.c    |   17 ++---
 arch/arm/mach-s3c24xx/mach-smdk2413.c    |    8 +--
 arch/arm/mach-s3c24xx/mach-vstms.c       |    8 +--
 arch/arm/mach-sa1100/assabet.c           |    2 +-
 arch/arm/mm/init.c                       |   61 ++++++----------
 arch/arm/mm/mmu.c                        |  115 +++++++++---------------------
 include/linux/memblock.h                 |    2 +
 mm/memblock.c                            |    5 ++
 34 files changed, 140 insertions(+), 284 deletions(-)
Signature · 2 lines
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,
hosted by The Linux Foundation
#1 lore raw

PATCH v2 1/2 mm/memblock: add memblock_get_current_limit

Appart from setting the limit of memblock, it's also useful to be able to get the limit to avoid recalculating it every time. Add the function to do so.

---
 include/linux/memblock.h |    2 ++
 mm/memblock.c            |    5 +++++
 2 files changed, 7 insertions(+), 0 deletions(-)
include/linux/memblock.h +2 -0
index 1ef6636..8a20a51 100644
@@ -252,6 +252,8 @@ static inline void memblock_dump_all(void)
 void memblock_set_current_limit(phys_addr_t limit);
 
 
+phys_addr_t memblock_get_current_limit(void);
+
 /*
  * pfn conversion functions
  *
mm/memblock.c +5 -0
index 87d21a6..3820e29 100644
@@ -1404,6 +1404,11 @@ void __init_memblock memblock_set_current_limit(phys_addr_t limit)
 	memblock.current_limit = limit;
 }
 
+phys_addr_t __init_memblock memblock_get_current_limit(void)
+{
+	return memblock.current_limit;
+}
+
 static void __init_memblock memblock_dump(struct memblock_type *type, char *name)
 {
 	unsigned long long base, size;
Signature · 8 lines
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,
hosted by The Linux Foundation

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to [email protected].  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"[email protected]"> [email protected] </a>
maintainer
#2 lore raw

Re: [PATCHv2 1/2] mm/memblock: add memblock_get_current_limit

Quoted 3 lines · On Tue, 4 Feb 2014 16:02:30 -0800 Laura Abbott <[email protected]> wrote:

Appart from setting the limit of memblock, it's also useful to be able to get the limit to avoid recalculating it every time. Add the function to do so.

Looks OK to me. Your "[PATCHv2 2/2] arm: Get rid of meminfo" did not make it into my inbox or into my lkml folder, but I found it at lkml.org so the server did send it. I'm not sure what's up with that.

Please include [patch 1/2] within or alongside [patch 2/2] so they both get merged via the same route, which is presumably an arm tree.

Acked-by on v2 1/2
#3 lore raw

Re: [PATCHv2 1/2] mm/memblock: add memblock_get_current_limit

In reply to Laura Abbott
Quoted 6 lines · Laura Abbott

Appart from setting the limit of memblock, it's also useful to be able to get the limit to avoid recalculating it every time. Add the function to do so.

---

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to [email protected]. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"[email protected]"> [email protected] </a>

#4 lore raw

PATCH v2 2/2 arm: Get rid of meminfo

In reply to Laura Abbott

memblock is now fully integrated into the kernel and is the prefered method for tracking memory. Rather than reinvent the wheel with meminfo, migrate to using memblock directly instead of meminfo as an intermediate.

---
 arch/arm/include/asm/mach/arch.h         |    4 +-
 arch/arm/include/asm/memblock.h          |    3 +-
 arch/arm/include/asm/setup.h             |   23 ------
 arch/arm/kernel/atags_parse.c            |    5 +-
 arch/arm/kernel/setup.c                  |   30 ++------
 arch/arm/mach-clps711x/board-clep7312.c  |    7 +-
 arch/arm/mach-clps711x/board-edb7211.c   |   10 +--
 arch/arm/mach-clps711x/board-p720t.c     |    2 +-
 arch/arm/mach-footbridge/cats-hw.c       |    2 +-
 arch/arm/mach-footbridge/netwinder-hw.c  |    2 +-
 arch/arm/mach-msm/board-halibut.c        |    6 --
 arch/arm/mach-msm/board-mahimahi.c       |   13 +---
 arch/arm/mach-msm/board-msm7x30.c        |    3 +-
 arch/arm/mach-msm/board-sapphire.c       |   13 ++--
 arch/arm/mach-msm/board-trout.c          |    8 +--
 arch/arm/mach-orion5x/common.c           |    3 +-
 arch/arm/mach-orion5x/common.h           |    3 +-
 arch/arm/mach-pxa/cm-x300.c              |    3 +-
 arch/arm/mach-pxa/corgi.c                |   10 +--
 arch/arm/mach-pxa/eseries.c              |    9 +--
 arch/arm/mach-pxa/poodle.c               |    8 +--
 arch/arm/mach-pxa/spitz.c                |    9 +--
 arch/arm/mach-pxa/tosa.c                 |    8 +--
 arch/arm/mach-realview/core.c            |   11 +--
 arch/arm/mach-realview/core.h            |    3 +-
 arch/arm/mach-realview/realview_pb1176.c |    8 +--
 arch/arm/mach-realview/realview_pbx.c    |   17 ++---
 arch/arm/mach-s3c24xx/mach-smdk2413.c    |    8 +--
 arch/arm/mach-s3c24xx/mach-vstms.c       |    8 +--
 arch/arm/mach-sa1100/assabet.c           |    2 +-
 arch/arm/mm/init.c                       |   61 ++++++----------
 arch/arm/mm/mmu.c                        |  115 +++++++++---------------------
 32 files changed, 133 insertions(+), 284 deletions(-)
arch/arm/include/asm/mach/arch.h +1 -3
index 17a3fa2..c43473a 100644
@@ -14,7 +14,6 @@
 #include <linux/reboot.h>
 
 struct tag;
-struct meminfo;
 struct pt_regs;
 struct smp_operations;
 #ifdef CONFIG_SMP
@@ -47,8 +46,7 @@ struct machine_desc {
 	enum reboot_mode	reboot_mode;	/* default restart mode	*/
 	struct smp_operations	*smp;		/* SMP operations	*/
 	bool			(*smp_init)(void);
-	void			(*fixup)(struct tag *, char **,
-					 struct meminfo *);
+	void			(*fixup)(struct tag *, char **);
 	void			(*init_meminfo)(void);
 	void			(*reserve)(void);/* reserve mem blocks	*/
 	void			(*map_io)(void);/* IO mapping function	*/
arch/arm/include/asm/memblock.h +1 -2
index c2f5102..bf47a6c 100644
@@ -1,10 +1,9 @@
 #ifndef _ASM_ARM_MEMBLOCK_H
 #define _ASM_ARM_MEMBLOCK_H
 
-struct meminfo;
 struct machine_desc;
 
-void arm_memblock_init(struct meminfo *, const struct machine_desc *);
+void arm_memblock_init(const struct machine_desc *);
 phys_addr_t arm_memblock_steal(phys_addr_t size, phys_addr_t align);
 
 #endif
arch/arm/include/asm/setup.h +0 -23
index 8d6a089..0196091 100644
@@ -26,29 +26,6 @@ static const struct tagtable __tagtable_##fn __tag = { tag, fn }
  */
 #define NR_BANKS	CONFIG_ARM_NR_BANKS
 
-struct membank {
-	phys_addr_t start;
-	phys_addr_t size;
-	unsigned int highmem;
-};
-
-struct meminfo {
-	int nr_banks;
-	struct membank bank[NR_BANKS];
-};
-
-extern struct meminfo meminfo;
-
-#define for_each_bank(iter,mi)				\
-	for (iter = 0; iter < (mi)->nr_banks; iter++)
-
-#define bank_pfn_start(bank)	__phys_to_pfn((bank)->start)
-#define bank_pfn_end(bank)	__phys_to_pfn((bank)->start + (bank)->size)
-#define bank_pfn_size(bank)	((bank)->size >> PAGE_SHIFT)
-#define bank_phys_start(bank)	(bank)->start
-#define bank_phys_end(bank)	((bank)->start + (bank)->size)
-#define bank_phys_size(bank)	(bank)->size
-
 extern int arm_add_memory(u64 start, u64 size);
 extern void early_print(const char *str, ...);
 extern void dump_machine_table(void);
arch/arm/kernel/atags_parse.c +3 -2
index 8c14de8..7807ef5 100644
@@ -22,6 +22,7 @@
 #include <linux/fs.h>
 #include <linux/root_dev.h>
 #include <linux/screen_info.h>
+#include <linux/memblock.h>
 
 #include <asm/setup.h>
 #include <asm/system_info.h>
@@ -222,10 +223,10 @@ setup_machine_tags(phys_addr_t __atags_pointer, unsigned int machine_nr)
 	}
 
 	if (mdesc->fixup)
-		mdesc->fixup(tags, &from, &meminfo);
+		mdesc->fixup(tags, &from);
 
 	if (tags->hdr.tag == ATAG_CORE) {
-		if (meminfo.nr_banks != 0)
+		if (memblock_phys_mem_size())
 			squash_mem_tags(tags);
 		save_atags(tags);
 		parse_tags(tags);
arch/arm/kernel/setup.c +8 -22
index b0df976..b6de661 100644
@@ -625,15 +625,8 @@ void __init dump_machine_table(void)
 
 int __init arm_add_memory(u64 start, u64 size)
 {
-	struct membank *bank = &meminfo.bank[meminfo.nr_banks];
 	u64 aligned_start;
 
-	if (meminfo.nr_banks >= NR_BANKS) {
-		pr_crit("NR_BANKS too low, ignoring memory at 0x%08llx\n",
-			(long long)start);
-		return -EINVAL;
-	}
-
 	/*
 	 * Ensure that start/size are aligned to a page boundary.
 	 * Size is appropriately rounded down, start is rounded up.
@@ -674,17 +667,17 @@ int __init arm_add_memory(u64 start, u64 size)
 		aligned_start = PHYS_OFFSET;
 	}
 
-	bank->start = aligned_start;
-	bank->size = size & ~(phys_addr_t)(PAGE_SIZE - 1);
+	start = aligned_start;
+	size = size & ~(phys_addr_t)(PAGE_SIZE - 1);
 
 	/*
 	 * Check whether this memory region has non-zero size or
 	 * invalid node number.
 	 */
-	if (bank->size == 0)
+	if (size == 0)
 		return -EINVAL;
 
-	meminfo.nr_banks++;
+	memblock_add(start, size);
 	return 0;
 }
 
@@ -692,6 +685,7 @@ int __init arm_add_memory(u64 start, u64 size)
  * Pick out the memory size.  We look for mem=size at start,
  * where start and size are "size[KkMm]"
  */
+
 static int __init early_mem(char *p)
 {
 	static int usermem __initdata = 0;
@@ -706,7 +700,8 @@ static int __init early_mem(char *p)
 	 */
 	if (usermem == 0) {
 		usermem = 1;
-		meminfo.nr_banks = 0;
+		memblock_remove(memblock_start_of_DRAM(),
+			memblock_end_of_DRAM() - memblock_start_of_DRAM());
 	}
 
 	start = PHYS_OFFSET;
@@ -851,13 +846,6 @@ static void __init reserve_crashkernel(void)
 static inline void reserve_crashkernel(void) {}
 #endif /* CONFIG_KEXEC */
 
-static int __init meminfo_cmp(const void *_a, const void *_b)
-{
-	const struct membank *a = _a, *b = _b;
-	long cmp = bank_pfn_start(a) - bank_pfn_start(b);
-	return cmp < 0 ? -1 : cmp > 0 ? 1 : 0;
-}
-
 void __init hyp_mode_check(void)
 {
 #ifdef CONFIG_ARM_VIRT_EXT
@@ -900,12 +888,10 @@ void __init setup_arch(char **cmdline_p)
 
 	parse_early_param();
 
-	sort(&meminfo.bank, meminfo.nr_banks, sizeof(meminfo.bank[0]), meminfo_cmp, NULL);
-
 	early_paging_init(mdesc, lookup_processor_type(read_cpuid_id()));
 	setup_dma_zone(mdesc);
 	sanity_check_meminfo();
-	arm_memblock_init(&meminfo, mdesc);
+	arm_memblock_init(mdesc);
 
 	paging_init(mdesc);
 	request_standard_resources(mdesc);
arch/arm/mach-clps711x/board-clep7312.c +3 -4
index b476424..4d04b91 100644
@@ -18,6 +18,7 @@
 #include <linux/init.h>
 #include <linux/types.h>
 #include <linux/string.h>
+#include <linux/memblock.h>
 
 #include <asm/setup.h>
 #include <asm/mach-types.h>
@@ -26,11 +27,9 @@
 #include "common.h"
 
 static void __init
-fixup_clep7312(struct tag *tags, char **cmdline, struct meminfo *mi)
+fixup_clep7312(struct tag *tags, char **cmdline)
 {
-	mi->nr_banks=1;
-	mi->bank[0].start = 0xc0000000;
-	mi->bank[0].size = 0x01000000;
+	memblock_add(0xc0000000, 0x01000000);
 }
 
 MACHINE_START(CLEP7212, "Cirrus Logic 7212/7312")
arch/arm/mach-clps711x/board-edb7211.c +4 -6
index fe6184e..b617aa2 100644
@@ -16,6 +16,7 @@
 #include <linux/interrupt.h>
 #include <linux/backlight.h>
 #include <linux/platform_device.h>
+#include <linux/memblock.h>
 
 #include <linux/mtd/physmap.h>
 #include <linux/mtd/partitions.h>
@@ -133,7 +134,7 @@ static void __init edb7211_reserve(void)
 }
 
 static void __init
-fixup_edb7211(struct tag *tags, char **cmdline, struct meminfo *mi)
+fixup_edb7211(struct tag *tags, char **cmdline)
 {
 	/*
 	 * Bank start addresses are not present in the information
@@ -143,11 +144,8 @@ fixup_edb7211(struct tag *tags, char **cmdline, struct meminfo *mi)
 	 * Banks sizes _are_ present in the param block, but we're
 	 * not using that information yet.
 	 */
-	mi->bank[0].start = 0xc0000000;
-	mi->bank[0].size = SZ_8M;
-	mi->bank[1].start = 0xc1000000;
-	mi->bank[1].size = SZ_8M;
-	mi->nr_banks = 2;
+	memblock_add(0xc0000000, SZ_8M);
+	memblock_add(0xc1000000, SZ_8M);
 }
 
 static void __init edb7211_init(void)
arch/arm/mach-clps711x/board-p720t.c +1 -1
index dd81b06..c1c6729 100644
@@ -295,7 +295,7 @@ static struct generic_bl_info p720t_lcd_backlight_pdata = {
 };
 
 static void __init
-fixup_p720t(struct tag *tag, char **cmdline, struct meminfo *mi)
+fixup_p720t(struct tag *tag, char **cmdline)
 {
 	/*
 	 * Our bootloader doesn't setup any tags (yet).
arch/arm/mach-footbridge/cats-hw.c +1 -1
index 9669cc0..de86ab6 100644
@@ -76,7 +76,7 @@ __initcall(cats_hw_init);
  * hard reboots fail on early boards.
  */
 static void __init
-fixup_cats(struct tag *tags, char **cmdline, struct meminfo *mi)
+fixup_cats(struct tag *tags, char **cmdline)
 {
 	screen_info.orig_video_lines  = 25;
 	screen_info.orig_video_points = 16;
arch/arm/mach-footbridge/netwinder-hw.c +1 -1
index eb1fa5c..cdee08c 100644
@@ -620,7 +620,7 @@ __initcall(nw_hw_init);
  * the parameter page.
  */
 static void __init
-fixup_netwinder(struct tag *tags, char **cmdline, struct meminfo *mi)
+fixup_netwinder(struct tag *tags, char **cmdline)
 {
 #ifdef CONFIG_ISAPNP
 	extern int isapnp_disable;
arch/arm/mach-msm/board-halibut.c +0 -6
index a775298..61bfe58 100644
@@ -83,11 +83,6 @@ static void __init halibut_init(void)
 	platform_add_devices(devices, ARRAY_SIZE(devices));
 }
 
-static void __init halibut_fixup(struct tag *tags, char **cmdline,
-				 struct meminfo *mi)
-{
-}
-
 static void __init halibut_map_io(void)
 {
 	msm_map_common_io();
@@ -100,7 +95,6 @@ static void __init halibut_init_late(void)
 
 MACHINE_START(HALIBUT, "Halibut Board (QCT SURF7200A)")
 	.atag_offset	= 0x100,
-	.fixup		= halibut_fixup,
 	.map_io		= halibut_map_io,
 	.init_early	= halibut_init_early,
 	.init_irq	= halibut_init_irq,
arch/arm/mach-msm/board-mahimahi.c +4 -9
index 7d9981c..873c3ca 100644
@@ -22,6 +22,7 @@
 #include <linux/io.h>
 #include <linux/kernel.h>
 #include <linux/platform_device.h>
+#include <linux/memblock.h>
 
 #include <asm/mach-types.h>
 #include <asm/mach/arch.h>
@@ -52,16 +53,10 @@ static void __init mahimahi_init(void)
 	platform_add_devices(devices, ARRAY_SIZE(devices));
 }
 
-static void __init mahimahi_fixup(struct tag *tags, char **cmdline,
-				  struct meminfo *mi)
+static void __init mahimahi_fixup(struct tag *tags, char **cmdline)
 {
-	mi->nr_banks = 2;
-	mi->bank[0].start = PHYS_OFFSET;
-	mi->bank[0].node = PHYS_TO_NID(PHYS_OFFSET);
-	mi->bank[0].size = (219*1024*1024);
-	mi->bank[1].start = MSM_HIGHMEM_BASE;
-	mi->bank[1].node = PHYS_TO_NID(MSM_HIGHMEM_BASE);
-	mi->bank[1].size = MSM_HIGHMEM_SIZE;
+	memblock_add(PHYS_OFFSET, 219*SZ_1M);
+	memblock_add(MSM_HIGHMEM_BASE, MSM_HIGHMEM_SIZE);
 }
 
 static void __init mahimahi_map_io(void)
arch/arm/mach-msm/board-msm7x30.c +1 -2
index 46de789..b621b23 100644
@@ -40,8 +40,7 @@
 #include "proc_comm.h"
 #include "common.h"
 
-static void __init msm7x30_fixup(struct tag *tag, char **cmdline,
-		struct meminfo *mi)
+static void __init msm7x30_fixup(struct tag *tag, char **cmdline)
 {
 	for (; tag->hdr.size; tag = tag_next(tag))
 		if (tag->hdr.tag == ATAG_MEM && tag->u.mem.start == 0x200000) {
arch/arm/mach-msm/board-sapphire.c +5 -8
index 3276051..e509679 100644
@@ -35,6 +35,7 @@
 
 #include <linux/mtd/nand.h>
 #include <linux/mtd/partitions.h>
+#include <linux/memblock.h>
 
 #include "gpio_chip.h"
 #include "board-sapphire.h"
@@ -74,22 +75,18 @@ static struct map_desc sapphire_io_desc[] __initdata = {
 	}
 };
 
-static void __init sapphire_fixup(struct tag *tags, char **cmdline,
-				  struct meminfo *mi)
+static void __init sapphire_fixup(struct tag *tags, char **cmdline)
 {
 	int smi_sz = parse_tag_smi((const struct tag *)tags);
 
-	mi->nr_banks = 1;
-	mi->bank[0].start = PHYS_OFFSET;
-	mi->bank[0].node = PHYS_TO_NID(PHYS_OFFSET);
 	if (smi_sz == 32) {
-		mi->bank[0].size = (84*1024*1024);
+		memblock_add(PHYS_OFFSET, 84*SZ_1M);
 	} else if (smi_sz == 64) {
-		mi->bank[0].size = (101*1024*1024);
+		memblock_add(PHYS_OFFSET, 101*SZ_1M);
 	} else {
+		memblock_add(PHYS_OFFSET, 101*SZ_1M);
 		/* Give a default value when not get smi size */
 		smi_sz = 64;
-		mi->bank[0].size = (101*1024*1024);
 	}
 }
 
arch/arm/mach-msm/board-trout.c +3 -5
index 015d544..58826cf 100644
@@ -19,6 +19,7 @@
 #include <linux/init.h>
 #include <linux/platform_device.h>
 #include <linux/clkdev.h>
+#include <linux/memblock.h>
 
 #include <asm/system_info.h>
 #include <asm/mach-types.h>
@@ -55,12 +56,9 @@ static void __init trout_init_irq(void)
 	msm_init_irq();
 }
 
-static void __init trout_fixup(struct tag *tags, char **cmdline,
-			       struct meminfo *mi)
+static void __init trout_fixup(struct tag *tags, char **cmdline)
 {
-	mi->nr_banks = 1;
-	mi->bank[0].start = PHYS_OFFSET;
-	mi->bank[0].size = (101*1024*1024);
+	memblock_add(PHYS_OFFSET, 101*SZ_1M);
 }
 
 static void __init trout_init(void)
arch/arm/mach-orion5x/common.c +1 -2
index 3f1de11..6bbb7b5 100644
@@ -365,8 +365,7 @@ void orion5x_restart(enum reboot_mode mode, const char *cmd)
  * Many orion-based systems have buggy bootloader implementations.
  * This is a common fixup for bogus memory tags.
  */
-void __init tag_fixup_mem32(struct tag *t, char **from,
-			    struct meminfo *meminfo)
+void __init tag_fixup_mem32(struct tag *t, char **from)
 {
 	for (; t->hdr.size; t = tag_next(t))
 		if (t->hdr.tag == ATAG_MEM &&
arch/arm/mach-orion5x/common.h +1 -2
index f565f99..175ec4c 100644
@@ -71,9 +71,8 @@ void edmini_v2_init(void);
 static inline void edmini_v2_init(void) {};
 #endif
 
-struct meminfo;
 struct tag;
-extern void __init tag_fixup_mem32(struct tag *, char **, struct meminfo *);
+extern void __init tag_fixup_mem32(struct tag *, char **);
 
 /*****************************************************************************
  * Helpers to access Orion registers
arch/arm/mach-pxa/cm-x300.c +1 -2
index 584439bf..4d3588d 100644
@@ -837,8 +837,7 @@ static void __init cm_x300_init(void)
 	cm_x300_init_bl();
 }
 
-static void __init cm_x300_fixup(struct tag *tags, char **cmdline,
-				 struct meminfo *mi)
+static void __init cm_x300_fixup(struct tag *tags, char **cmdline)
 {
 	/* Make sure that mi->bank[0].start = PHYS_ADDR */
 	for (; tags->hdr.size; tags = tag_next(tags))
arch/arm/mach-pxa/corgi.c +4 -6
index f162f1b..a763744 100644
@@ -33,6 +33,7 @@
 #include <linux/mtd/sharpsl.h>
 #include <linux/input/matrix_keypad.h>
 #include <linux/module.h>
+#include <linux/memblock.h>
 #include <video/w100fb.h>
 
 #include <asm/setup.h>
@@ -713,16 +714,13 @@ static void __init corgi_init(void)
 	platform_add_devices(devices, ARRAY_SIZE(devices));
 }
 
-static void __init fixup_corgi(struct tag *tags, char **cmdline,
-			       struct meminfo *mi)
+static void __init fixup_corgi(struct tag *tags, char **cmdline)
 {
 	sharpsl_save_param();
-	mi->nr_banks=1;
-	mi->bank[0].start = 0xa0000000;
 	if (machine_is_corgi())
-		mi->bank[0].size = (32*1024*1024);
+		memblock_add(0xa0000000, SZ_32M);
 	else
-		mi->bank[0].size = (64*1024*1024);
+		memblock_add(0xa0000000, SZ_64M);
 }
 
 #ifdef CONFIG_MACH_CORGI
arch/arm/mach-pxa/eseries.c +4 -5
index 8280ebca..cfb8641 100644
@@ -21,6 +21,7 @@
 #include <linux/mtd/nand.h>
 #include <linux/mtd/partitions.h>
 #include <linux/usb/gpio_vbus.h>
+#include <linux/memblock.h>
 
 #include <video/w100fb.h>
 
@@ -41,14 +42,12 @@
 #include "clock.h"
 
 /* Only e800 has 128MB RAM */
-void __init eseries_fixup(struct tag *tags, char **cmdline, struct meminfo *mi)
+void __init eseries_fixup(struct tag *tags, char **cmdline)
 {
-	mi->nr_banks=1;
-	mi->bank[0].start = 0xa0000000;
 	if (machine_is_e800())
-		mi->bank[0].size = (128*1024*1024);
+		memblock_add(0xa0000000, SZ_128M);
 	else
-		mi->bank[0].size = (64*1024*1024);
+		memblock_add(0xa0000000, SZ_64M);
 }
 
 struct gpio_vbus_mach_info e7xx_udc_info = {
arch/arm/mach-pxa/poodle.c +3 -5
index aedf053..1319916 100644
@@ -29,6 +29,7 @@
 #include <linux/spi/ads7846.h>
 #include <linux/spi/pxa2xx_spi.h>
 #include <linux/mtd/sharpsl.h>
+#include <linux/memblock.h>
 
 #include <mach/hardware.h>
 #include <asm/mach-types.h>
@@ -456,13 +457,10 @@ static void __init poodle_init(void)
 	poodle_init_spi();
 }
 
-static void __init fixup_poodle(struct tag *tags, char **cmdline,
-				struct meminfo *mi)
+static void __init fixup_poodle(struct tag *tags, char **cmdline)
 {
 	sharpsl_save_param();
-	mi->nr_banks=1;
-	mi->bank[0].start = 0xa0000000;
-	mi->bank[0].size = (32*1024*1024);
+	memblock_add(0xa0000000, SZ_32M);
 }
 
 MACHINE_START(POODLE, "SHARP Poodle")
arch/arm/mach-pxa/spitz.c +3 -6
index 0b11c1a..51d814e 100644
@@ -32,6 +32,7 @@
 #include <linux/io.h>
 #include <linux/module.h>
 #include <linux/reboot.h>
+#include <linux/memblock.h>
 
 #include <asm/setup.h>
 #include <asm/mach-types.h>
@@ -971,13 +972,9 @@ static void __init spitz_init(void)
 	spitz_i2c_init();
 }
 
-static void __init spitz_fixup(struct tag *tags, char **cmdline,
-			       struct meminfo *mi)
+static void __init spitz_fixup(struct tag *tags, char **cmdline)
 {
-	sharpsl_save_param();
-	mi->nr_banks = 1;
-	mi->bank[0].start = 0xa0000000;
-	mi->bank[0].size = (64*1024*1024);
+	memblock_addr(0xa0000000, SZ_64M);
 }
 
 #ifdef CONFIG_MACH_SPITZ
arch/arm/mach-pxa/tosa.c +3 -5
index ef5557b..c158a6e 100644
@@ -37,6 +37,7 @@
 #include <linux/i2c/pxa-i2c.h>
 #include <linux/usb/gpio_vbus.h>
 #include <linux/reboot.h>
+#include <linux/memblock.h>
 
 #include <asm/setup.h>
 #include <asm/mach-types.h>
@@ -960,13 +961,10 @@ static void __init tosa_init(void)
 	platform_add_devices(devices, ARRAY_SIZE(devices));
 }
 
-static void __init fixup_tosa(struct tag *tags, char **cmdline,
-			      struct meminfo *mi)
+static void __init fixup_tosa(struct tag *tags, char **cmdline)
 {
 	sharpsl_save_param();
-	mi->nr_banks=1;
-	mi->bank[0].start = 0xa0000000;
-	mi->bank[0].size = (64*1024*1024);
+	memblock_add(0xa0000000, SZ_64M);
 }
 
 MACHINE_START(TOSA, "SHARP Tosa")
arch/arm/mach-realview/core.c +4 -7
index 1d5ee5c..c2fae3a 100644
@@ -31,6 +31,7 @@
 #include <linux/amba/mmci.h>
 #include <linux/gfp.h>
 #include <linux/mtd/physmap.h>
+#include <linux/memblock.h>
 
 #include <mach/hardware.h>
 #include <asm/irq.h>
@@ -370,19 +371,15 @@ void __init realview_timer_init(unsigned int timer_irq)
 /*
  * Setup the memory banks.
  */
-void realview_fixup(struct tag *tags, char **from, struct meminfo *meminfo)
+void realview_fixup(struct tag *tags, char **from)
 {
 	/*
 	 * Most RealView platforms have 512MB contiguous RAM at 0x70000000.
 	 * Half of this is mirrored at 0.
 	 */
 #ifdef CONFIG_REALVIEW_HIGH_PHYS_OFFSET
-	meminfo->bank[0].start = 0x70000000;
-	meminfo->bank[0].size = SZ_512M;
-	meminfo->nr_banks = 1;
+	memblock_add(0x70000000, SZ_512M);
 #else
-	meminfo->bank[0].start = 0;
-	meminfo->bank[0].size = SZ_256M;
-	meminfo->nr_banks = 1;
+	memblock_add(0, SZ_256M);
 #endif
 }
arch/arm/mach-realview/core.h +1 -2
index 602ca5e..844946d 100644
@@ -51,8 +51,7 @@ extern int realview_flash_register(struct resource *res, u32 num);
 extern int realview_eth_register(const char *name, struct resource *res);
 extern int realview_usb_register(struct resource *res);
 extern void realview_init_early(void);
-extern void realview_fixup(struct tag *tags, char **from,
-			   struct meminfo *meminfo);
+extern void realview_fixup(struct tag *tags, char **from);
 
 extern struct smp_operations realview_smp_ops;
 extern void realview_cpu_die(unsigned int cpu);
arch/arm/mach-realview/realview_pb1176.c +3 -5
index c5eade7..6abf6a0 100644
@@ -32,6 +32,7 @@
 #include <linux/irqchip/arm-gic.h>
 #include <linux/platform_data/clk-realview.h>
 #include <linux/reboot.h>
+#include <linux/memblock.h>
 
 #include <mach/hardware.h>
 #include <asm/irq.h>
@@ -339,15 +340,12 @@ static void realview_pb1176_restart(enum reboot_mode mode, const char *cmd)
 	dsb();
 }
 
-static void realview_pb1176_fixup(struct tag *tags, char **from,
-				  struct meminfo *meminfo)
+static void realview_pb1176_fixup(struct tag *tags, char **from)
 {
 	/*
 	 * RealView PB1176 only has 128MB of RAM mapped at 0.
 	 */
-	meminfo->bank[0].start = 0;
-	meminfo->bank[0].size = SZ_128M;
-	meminfo->nr_banks = 1;
+	memblock_add(0, SZ_128M);
 }
 
 static void __init realview_pb1176_init(void)
arch/arm/mach-realview/realview_pbx.c +7 -10
index 9d75493..60d322a 100644
@@ -29,6 +29,7 @@
 #include <linux/irqchip/arm-gic.h>
 #include <linux/platform_data/clk-realview.h>
 #include <linux/reboot.h>
+#include <linux/memblock.h>
 
 #include <asm/irq.h>
 #include <asm/mach-types.h>
@@ -325,23 +326,19 @@ static void __init realview_pbx_timer_init(void)
 	realview_pbx_twd_init();
 }
 
-static void realview_pbx_fixup(struct tag *tags, char **from,
-			       struct meminfo *meminfo)
+static void realview_pbx_fixup(struct tag *tags, char **from)
 {
 #ifdef CONFIG_SPARSEMEM
 	/*
 	 * Memory configuration with SPARSEMEM enabled on RealView PBX (see
 	 * asm/mach/memory.h for more information).
 	 */
-	meminfo->bank[0].start = 0;
-	meminfo->bank[0].size = SZ_256M;
-	meminfo->bank[1].start = 0x20000000;
-	meminfo->bank[1].size = SZ_512M;
-	meminfo->bank[2].start = 0x80000000;
-	meminfo->bank[2].size = SZ_256M;
-	meminfo->nr_banks = 3;
+
+	memblock_add(0, SZ_256M);
+	memblock_add(0x20000000, SZ_512M);
+	memblock_add(0x80000000, SZ_256M);
 #else
-	realview_fixup(tags, from, meminfo);
+	realview_fixup(tags, from);
 #endif
 }
 
arch/arm/mach-s3c24xx/mach-smdk2413.c +3 -5
index f5bc721..0551758 100644
@@ -21,6 +21,7 @@
 #include <linux/serial_core.h>
 #include <linux/platform_device.h>
 #include <linux/io.h>
+#include <linux/memblock.h>
 
 #include <asm/mach/arch.h>
 #include <asm/mach/map.h>
@@ -93,13 +94,10 @@ static struct platform_device *smdk2413_devices[] __initdata = {
 	&s3c2412_device_dma,
 };
 
-static void __init smdk2413_fixup(struct tag *tags, char **cmdline,
-				  struct meminfo *mi)
+static void __init smdk2413_fixup(struct tag *tags, char **cmdline)
 {
 	if (tags != phys_to_virt(S3C2410_SDRAM_PA + 0x100)) {
-		mi->nr_banks=1;
-		mi->bank[0].start = 0x30000000;
-		mi->bank[0].size = SZ_64M;
+		memblock_add(0x30000000, SZ_64M);
 	}
 }
 
arch/arm/mach-s3c24xx/mach-vstms.c +3 -5
index f7ec9c5..aa550f5 100644
@@ -22,6 +22,7 @@
 #include <linux/mtd/nand.h>
 #include <linux/mtd/nand_ecc.h>
 #include <linux/mtd/partitions.h>
+#include <linux/memblock.h>
 
 #include <asm/mach/arch.h>
 #include <asm/mach/map.h>
@@ -129,13 +130,10 @@ static struct platform_device *vstms_devices[] __initdata = {
 	&s3c2412_device_dma,
 };
 
-static void __init vstms_fixup(struct tag *tags, char **cmdline,
-			       struct meminfo *mi)
+static void __init vstms_fixup(struct tag *tags, char **cmdline)
 {
 	if (tags != phys_to_virt(S3C2410_SDRAM_PA + 0x100)) {
-		mi->nr_banks=1;
-		mi->bank[0].start = 0x30000000;
-		mi->bank[0].size = SZ_64M;
+		memblock_add(0x30000000, SZ_64M);
 	}
 }
 
arch/arm/mach-sa1100/assabet.c +1 -1
index 8443a27..7dd894e 100644
@@ -531,7 +531,7 @@ static void __init get_assabet_scr(void)
 }
 
 static void __init
-fixup_assabet(struct tag *tags, char **cmdline, struct meminfo *mi)
+fixup_assabet(struct tag *tags, char **cmdline)
 {
 	/* This must be done before any call to machine_has_neponset() */
 	map_sa1100_gpio_regs();
arch/arm/mm/init.c +22 -39

131 lines not on this page · raw message

arch/arm/mm/mmu.c +33 -82

142 lines not on this page · raw message

Signature · 2 lines
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,
hosted by The Linux Foundation
Acked-by on v2 2/2
#5 lore raw

Re: [PATCHv2 2/2] arm: Get rid of meminfo

Quoted 7 lines · Laura Abbott

memblock is now fully integrated into the kernel and is the prefered method for tracking memory. Rather than reinvent the wheel with meminfo, migrate to using memblock directly instead of meminfo as an intermediate.

---

...

Quoted 2 lines
 arch/arm/mach-orion5x/common.c           |    3 +-
 arch/arm/mach-orion5x/common.h           |    3 +-

...

thx,

Jason.

Tested-by on v2 2/2
#6 lore raw

Re: [PATCHv2 2/2] arm: Get rid of meminfo

In reply to Laura Abbott
Quoted 6 lines · Laura Abbott

memblock is now fully integrated into the kernel and is the prefered method for tracking memory. Rather than reinvent the wheel with meminfo, migrate to using memblock directly instead of meminfo as an intermediate.

On VExpress TC2:

(Applies also to 1/2, of course.)

#8 lore raw

Re: [PATCHv2 2/2] arm: Get rid of meminfo

In reply to Laura Abbott
Quoted 6 lines · Laura Abbott

memblock is now fully integrated into the kernel and is the prefered method for tracking memory. Rather than reinvent the wheel with meminfo, migrate to using memblock directly instead of meminfo as an intermediate.

[...]

Quoted 15 lines
arch/arm/mach-pxa/spitz.c +1 -0
index 0b11c1a..51d814e 100644
@@ -32,6 +32,7 @@
 #include <linux/io.h>
 #include <linux/module.h>
 #include <linux/reboot.h>
+#include <linux/memblock.h>
 
 #include <asm/setup.h>
 #include <asm/mach-types.h>
@@ -971,13 +972,9 @@ static void __init spitz_init(void)
        spitz_i2c_init();
 }

arch/arm/mach-pxa/spitz.c static void __init spitz_init(void) · line 977

Quoted 10 lines
arch/arm/mach-pxa/spitz.c +2 -6
 
-static void __init spitz_fixup(struct tag *tags, char **cmdline,
-                              struct meminfo *mi)
+static void __init spitz_fixup(struct tag *tags, char **cmdline)
 {
-       sharpsl_save_param();
-       mi->nr_banks = 1;
-       mi->bank[0].start = 0xa0000000;
-       mi->bank[0].size = (64*1024*1024);
+       memblock_addr(0xa0000000, SZ_64M);

memblock_add() ?

-Courtney

#9 lore raw

Re: [PATCHv2 2/2] arm: Get rid of meminfo

Quoted 24 lines · Courtney Cavin
Quoted 6 lines · Laura Abbott

memblock is now fully integrated into the kernel and is the prefered method for tracking memory. Rather than reinvent the wheel with meminfo, migrate to using memblock directly instead of meminfo as an intermediate.

[...]

Quoted 16 lines
arch/arm/mach-pxa/spitz.c +1 -0
index 0b11c1a..51d814e 100644
@@ -32,6 +32,7 @@
  #include <linux/io.h>
  #include <linux/module.h>
  #include <linux/reboot.h>
+#include <linux/memblock.h>
 
  #include <asm/setup.h>
  #include <asm/mach-types.h>
@@ -971,13 +972,9 @@ static void __init spitz_init(void)
         spitz_i2c_init();
  }
 
Quoted 11 lines

arch/arm/mach-pxa/spitz.c static void __init spitz_init(void) · line 977

Quoted 9 lines
arch/arm/mach-pxa/spitz.c +2 -6
-static void __init spitz_fixup(struct tag *tags, char **cmdline,
-                              struct meminfo *mi)
+static void __init spitz_fixup(struct tag *tags, char **cmdline)
  {
-       sharpsl_save_param();
-       mi->nr_banks = 1;
-       mi->bank[0].start = 0xa0000000;
-       mi->bank[0].size = (64*1024*1024);
+       memblock_addr(0xa0000000, SZ_64M);

memblock_add() ?

Yes, that was a typo on my part. I'll send out a v3 with collected acks.

Quoted 3 lines

-Courtney

Signature · 2 lines
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
hosted by The Linux Foundation
#10 lore raw

Re: [PATCHv2 2/2] arm: Get rid of meminfo

Quoted 36 lines · Laura Abbott
Quoted 24 lines · Courtney Cavin
Quoted 6 lines · Laura Abbott

memblock is now fully integrated into the kernel and is the prefered method for tracking memory. Rather than reinvent the wheel with meminfo, migrate to using memblock directly instead of meminfo as an intermediate.

[...]

Quoted 16 lines
arch/arm/mach-pxa/spitz.c +1 -0
index 0b11c1a..51d814e 100644
@@ -32,6 +32,7 @@
  #include <linux/io.h>
  #include <linux/module.h>
  #include <linux/reboot.h>
+#include <linux/memblock.h>
 
  #include <asm/setup.h>
  #include <asm/mach-types.h>
@@ -971,13 +972,9 @@ static void __init spitz_init(void)
         spitz_i2c_init();
  }
 
Quoted 11 lines

arch/arm/mach-pxa/spitz.c static void __init spitz_init(void) · line 977

Quoted 9 lines
arch/arm/mach-pxa/spitz.c +2 -6
-static void __init spitz_fixup(struct tag *tags, char **cmdline,
-                              struct meminfo *mi)
+static void __init spitz_fixup(struct tag *tags, char **cmdline)
  {
-       sharpsl_save_param();
-       mi->nr_banks = 1;
-       mi->bank[0].start = 0xa0000000;
-       mi->bank[0].size = (64*1024*1024);
+       memblock_addr(0xa0000000, SZ_64M);

memblock_add() ?

Quoted 1 line

Yes, that was a typo on my part. I'll send out a v3 with collected acks.

And better testing ;)

Signature · 1 line
Catalin
#11 lore raw

Re: [PATCHv2 2/2] arm: Get rid of meminfo

In reply to Laura Abbott
Quoted 36 lines · Laura Abbott
Quoted 24 lines · Courtney Cavin
Quoted 6 lines · Laura Abbott

memblock is now fully integrated into the kernel and is the prefered method for tracking memory. Rather than reinvent the wheel with meminfo, migrate to using memblock directly instead of meminfo as an intermediate.

[...]

Quoted 16 lines
arch/arm/mach-pxa/spitz.c +1 -0
index 0b11c1a..51d814e 100644
@@ -32,6 +32,7 @@
  #include <linux/io.h>
  #include <linux/module.h>
  #include <linux/reboot.h>
+#include <linux/memblock.h>
 
  #include <asm/setup.h>
  #include <asm/mach-types.h>
@@ -971,13 +972,9 @@ static void __init spitz_init(void)
         spitz_i2c_init();
  }
 
Quoted 11 lines

arch/arm/mach-pxa/spitz.c static void __init spitz_init(void) · line 977

Quoted 9 lines
arch/arm/mach-pxa/spitz.c +2 -6
-static void __init spitz_fixup(struct tag *tags, char **cmdline,
-                              struct meminfo *mi)
+static void __init spitz_fixup(struct tag *tags, char **cmdline)
  {
-       sharpsl_save_param();
-       mi->nr_banks = 1;
-       mi->bank[0].start = 0xa0000000;
-       mi->bank[0].size = (64*1024*1024);
+       memblock_addr(0xa0000000, SZ_64M);

memblock_add() ?

Quoted 2 lines

Yes, that was a typo on my part. I'll send out a v3 with collected acks.

So, I also just noticed that you specifically remove the call to sharpsl_save_param() here. I'm presuming that this is also an error, as you haven't removed it from any of the other pxa fixups, and it seems unrelated to the change.

-Courtney

#12 lore raw

Re: [PATCHv2 2/2] arm: Get rid of meminfo

Quoted 40 lines · Courtney Cavin
Quoted 36 lines · Laura Abbott
Quoted 24 lines · Courtney Cavin
Quoted 6 lines · Laura Abbott

memblock is now fully integrated into the kernel and is the prefered method for tracking memory. Rather than reinvent the wheel with meminfo, migrate to using memblock directly instead of meminfo as an intermediate.

[...]

Quoted 16 lines
arch/arm/mach-pxa/spitz.c +1 -0
index 0b11c1a..51d814e 100644
@@ -32,6 +32,7 @@
   #include <linux/io.h>
   #include <linux/module.h>
   #include <linux/reboot.h>
+#include <linux/memblock.h>
 
   #include <asm/setup.h>
   #include <asm/mach-types.h>
@@ -971,13 +972,9 @@ static void __init spitz_init(void)
          spitz_i2c_init();
   }
 
Quoted 11 lines

arch/arm/mach-pxa/spitz.c static void __init spitz_init(void) · line 977

Quoted 9 lines
arch/arm/mach-pxa/spitz.c +2 -6
-static void __init spitz_fixup(struct tag *tags, char **cmdline,
-                              struct meminfo *mi)
+static void __init spitz_fixup(struct tag *tags, char **cmdline)
   {
-       sharpsl_save_param();
-       mi->nr_banks = 1;
-       mi->bank[0].start = 0xa0000000;
-       mi->bank[0].size = (64*1024*1024);
+       memblock_addr(0xa0000000, SZ_64M);

memblock_add() ?

Quoted 2 lines

Yes, that was a typo on my part. I'll send out a v3 with collected acks.

Quoted 6 lines

So, I also just noticed that you specifically remove the call to sharpsl_save_param() here. I'm presuming that this is also an error, as you haven't removed it from any of the other pxa fixups, and it seems unrelated to the change.

-Courtney

Clearly not my finest hour at all. Thanks for reviewing.

Laura

Signature · 2 lines
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
hosted by The Linux Foundation
#13 lore raw

Re: [PATCHv2 2/2] arm: Get rid of meminfo

In reply to Laura Abbott
Quoted 12 lines · Laura Abbott

memblock is now fully integrated into the kernel and is the prefered method for tracking memory. Rather than reinvent the wheel with meminfo, migrate to using memblock directly instead of meminfo as an intermediate.

---

arch/arm/kernel/setup.c +0 -0
index b0df976..b6de661 100644

arch/arm/kernel/setup.c void __init dump_machine_table(void) · line 628

Quoted 5 lines
arch/arm/kernel/setup.c +0 -1
@@ -625,15 +625,8 @@ void __init dump_machine_table(void)
 
 int __init arm_add_memory(u64 start, u64 size)
 {
-       struct membank *bank = &meminfo.bank[meminfo.nr_banks];
        u64 aligned_start;

With the changes to this function, I think you can outright remove early_init_dt_add_memory_arch() from arch/arm/kernel/devtree.c. The default implementation (__weak) in drivers/of/fdt.c uses memblock directly.

g.

#14 lore raw

Re: [PATCHv2 2/2] arm: Get rid of meminfo

In reply to Laura Abbott

Hello,

Quoted 6 lines · Laura Abbott

memblock is now fully integrated into the kernel and is the prefered method for tracking memory. Rather than reinvent the wheel with meminfo, migrate to using memblock directly instead of meminfo as an intermediate.

This patch fails with SPARSEMEM enabled (tested with v3.14-rc1, exynos4_defconfig + oldnoconfig):

arch/arm/mm/init.c: In function ?free_unused_memmap?:
arch/arm/mm/init.c:442:10: error: ?prev_bank_end? undeclared (first use in this function)
arch/arm/mm/init.c:442:10: note: each undeclared identifier is reported only once for each function it appears in
make[1]: *** [arch/arm/mm/init.o] Error 1
make[1]: *** Waiting for unfinished jobs....

Quoted 26 lines
---
  arch/arm/include/asm/mach/arch.h         |    4 +-
  arch/arm/include/asm/memblock.h          |    3 +-
  arch/arm/include/asm/setup.h             |   23 ------
  arch/arm/kernel/atags_parse.c            |    5 +-
  arch/arm/kernel/setup.c                  |   30 ++------
  arch/arm/mach-clps711x/board-clep7312.c  |    7 +-
  arch/arm/mach-clps711x/board-edb7211.c   |   10 +--
  arch/arm/mach-clps711x/board-p720t.c     |    2 +-
  arch/arm/mach-footbridge/cats-hw.c       |    2 +-
  arch/arm/mach-footbridge/netwinder-hw.c  |    2 +-
  arch/arm/mach-msm/board-halibut.c        |    6 --
  arch/arm/mach-msm/board-mahimahi.c       |   13 +---
  arch/arm/mach-msm/board-msm7x30.c        |    3 +-
  arch/arm/mach-msm/board-sapphire.c       |   13 ++--
  arch/arm/mach-msm/board-trout.c          |    8 +--
  arch/arm/mach-orion5x/common.c           |    3 +-
  arch/arm/mach-orion5x/common.h           |    3 +-
  arch/arm/mach-pxa/cm-x300.c              |    3 +-
  arch/arm/mach-pxa/corgi.c                |   10 +--
  arch/arm/mach-pxa/eseries.c              |    9 +--
  arch/arm/mach-pxa/poodle.c               |    8 +--
  arch/arm/mach-pxa/spitz.c                |    9 +--
  arch/arm/mach-pxa/tosa.c                 |    8 +--
  arch/arm/mach-realview/core.c            |   11 +--
  arch/arm/mach-realview/core.h            |    3 +-
Quoted 8 lines
  arch/arm/mach-realview/realview_pb1176.c |    8 +--
  arch/arm/mach-realview/realview_pbx.c    |   17 ++---
  arch/arm/mach-s3c24xx/mach-smdk2413.c    |    8 +--
  arch/arm/mach-s3c24xx/mach-vstms.c       |    8 +--
  arch/arm/mach-sa1100/assabet.c           |    2 +-
  arch/arm/mm/init.c                       |   61 ++++++----------
  arch/arm/mm/mmu.c                        |  115 +++++++++---------------------
  32 files changed, 133 insertions(+), 284 deletions(-)

(snipped)

Best regards

Signature · 2 lines
Marek Szyprowski, PhD
Samsung R&D Institute Poland