aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mm/init.c
diff options
context:
space:
mode:
authorRussell King <rmk@dyn-67.arm.linux.org.uk>2008-09-06 05:57:03 -0400
committerRussell King <rmk+kernel@arm.linux.org.uk>2008-09-06 05:57:03 -0400
commit012d1f4af1b07e5ccfcd23b7c1dcdcc30a068257 (patch)
treeb054a3cc06cf026160a3e44b51b4ccc167baba4b /arch/arm/mm/init.c
parent446616dbb48c7dc039649f796c3fab55c44bd0bc (diff)
[ARM] move initrd code from kernel/setup.c to mm/init.c
This quietens some sparse warnings about phys_initrd_start and phys_initrd_size. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'arch/arm/mm/init.c')
-rw-r--r--arch/arm/mm/init.c39
1 files changed, 37 insertions, 2 deletions
diff --git a/arch/arm/mm/init.c b/arch/arm/mm/init.c
index 30a69d67d673..c70fb1d18903 100644
--- a/arch/arm/mm/init.c
+++ b/arch/arm/mm/init.c
@@ -27,8 +27,43 @@
27#include "mm.h" 27#include "mm.h"
28 28
29extern void _text, _etext, __data_start, _end, __init_begin, __init_end; 29extern void _text, _etext, __data_start, _end, __init_begin, __init_end;
30extern unsigned long phys_initrd_start; 30
31extern unsigned long phys_initrd_size; 31static unsigned long phys_initrd_start __initdata = 0;
32static unsigned long phys_initrd_size __initdata = 0;
33
34static void __init early_initrd(char **p)
35{
36 unsigned long start, size;
37
38 start = memparse(*p, p);
39 if (**p == ',') {
40 size = memparse((*p) + 1, p);
41
42 phys_initrd_start = start;
43 phys_initrd_size = size;
44 }
45}
46__early_param("initrd=", early_initrd);
47
48static int __init parse_tag_initrd(const struct tag *tag)
49{
50 printk(KERN_WARNING "ATAG_INITRD is deprecated; "
51 "please update your bootloader.\n");
52 phys_initrd_start = __virt_to_phys(tag->u.initrd.start);
53 phys_initrd_size = tag->u.initrd.size;
54 return 0;
55}
56
57__tagtable(ATAG_INITRD, parse_tag_initrd);
58
59static int __init parse_tag_initrd2(const struct tag *tag)
60{
61 phys_initrd_start = tag->u.initrd.start;
62 phys_initrd_size = tag->u.initrd.size;
63 return 0;
64}
65
66__tagtable(ATAG_INITRD2, parse_tag_initrd2);
32 67
33/* 68/*
34 * This is used to pass memory configuration data from paging_init 69 * This is used to pass memory configuration data from paging_init