aboutsummaryrefslogtreecommitdiffstats
path: root/arch/mips/kernel/setup.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/mips/kernel/setup.c')
-rw-r--r--arch/mips/kernel/setup.c20
1 files changed, 1 insertions, 19 deletions
diff --git a/arch/mips/kernel/setup.c b/arch/mips/kernel/setup.c
index fd138c9b33ef..bd55f71055ba 100644
--- a/arch/mips/kernel/setup.c
+++ b/arch/mips/kernel/setup.c
@@ -166,26 +166,8 @@ static unsigned long __init init_initrd(void)
166 * already set up initrd_start and initrd_end. In these cases 166 * already set up initrd_start and initrd_end. In these cases
167 * perfom sanity checks and use them if all looks good. 167 * perfom sanity checks and use them if all looks good.
168 */ 168 */
169 if (!initrd_start || initrd_end <= initrd_start) { 169 if (!initrd_start || initrd_end <= initrd_start)
170#ifdef CONFIG_PROBE_INITRD_HEADER
171 u32 *initrd_header;
172
173 /*
174 * See if initrd has been added to the kernel image by
175 * arch/mips/boot/addinitrd.c. In that case a header is
176 * prepended to initrd and is made up by 8 bytes. The first
177 * word is a magic number and the second one is the size of
178 * initrd. Initrd start must be page aligned in any cases.
179 */
180 initrd_header = __va(PAGE_ALIGN(__pa_symbol(&_end) + 8)) - 8;
181 if (initrd_header[0] != 0x494E5244)
182 goto disable;
183 initrd_start = (unsigned long)(initrd_header + 2);
184 initrd_end = initrd_start + initrd_header[1];
185#else
186 goto disable; 170 goto disable;
187#endif
188 }
189 171
190 if (initrd_start & ~PAGE_MASK) { 172 if (initrd_start & ~PAGE_MASK) {
191 pr_err("initrd start must be page aligned\n"); 173 pr_err("initrd start must be page aligned\n");