aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/kernel/setup.c
diff options
context:
space:
mode:
authorYinghai Lu <yhlu.kernel@gmail.com>2008-06-25 20:56:22 -0400
committerIngo Molnar <mingo@elte.hu>2008-07-08 07:10:50 -0400
commit257b0fde99df0160db03e529dbfb3a4e46c07a88 (patch)
tree7c887d152232a94b14563bafc0075b202a969281 /arch/x86/kernel/setup.c
parent217b8ce89088dd47e7176686ff34573f75a624e9 (diff)
x86: move parse_setup_data back to setup.c
Signed-off-by: Yinghai Lu <yhlu.kernel@gmail.com> Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'arch/x86/kernel/setup.c')
-rw-r--r--arch/x86/kernel/setup.c25
1 files changed, 25 insertions, 0 deletions
diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c
index f24a8fe8a7e4..4b00c8347bb7 100644
--- a/arch/x86/kernel/setup.c
+++ b/arch/x86/kernel/setup.c
@@ -375,6 +375,31 @@ static void __init reserve_initrd(void)
375} 375}
376#endif /* CONFIG_BLK_DEV_INITRD */ 376#endif /* CONFIG_BLK_DEV_INITRD */
377 377
378void __init parse_setup_data(void)
379{
380 struct setup_data *data;
381 u64 pa_data;
382
383 if (boot_params.hdr.version < 0x0209)
384 return;
385 pa_data = boot_params.hdr.setup_data;
386 while (pa_data) {
387 data = early_ioremap(pa_data, PAGE_SIZE);
388 switch (data->type) {
389 case SETUP_E820_EXT:
390 parse_e820_ext(data, pa_data);
391 break;
392 default:
393 break;
394 }
395#ifndef CONFIG_DEBUG_BOOT_PARAMS
396 free_early(pa_data, pa_data+sizeof(*data)+data->len);
397#endif
398 pa_data = data->next;
399 early_iounmap(data, PAGE_SIZE);
400 }
401}
402
378/* 403/*
379 * Determine if we were loaded by an EFI loader. If so, then we have also been 404 * Determine if we were loaded by an EFI loader. If so, then we have also been
380 * passed the efi memmap, systab, etc., so we should use these data structures 405 * passed the efi memmap, systab, etc., so we should use these data structures