diff options
author | Russell King <rmk@dyn-67.arm.linux.org.uk> | 2008-09-06 05:57:03 -0400 |
---|---|---|
committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2008-09-06 05:57:03 -0400 |
commit | 012d1f4af1b07e5ccfcd23b7c1dcdcc30a068257 (patch) | |
tree | b054a3cc06cf026160a3e44b51b4ccc167baba4b /arch/arm/mm | |
parent | 446616dbb48c7dc039649f796c3fab55c44bd0bc (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')
-rw-r--r-- | arch/arm/mm/init.c | 39 |
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 | ||
29 | extern void _text, _etext, __data_start, _end, __init_begin, __init_end; | 29 | extern void _text, _etext, __data_start, _end, __init_begin, __init_end; |
30 | extern unsigned long phys_initrd_start; | 30 | |
31 | extern unsigned long phys_initrd_size; | 31 | static unsigned long phys_initrd_start __initdata = 0; |
32 | static unsigned long phys_initrd_size __initdata = 0; | ||
33 | |||
34 | static 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 | |||
48 | static 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 | |||
59 | static 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 |