aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86_64/kernel
diff options
context:
space:
mode:
authorAndi Kleen <ak@suse.de>2006-03-25 10:30:22 -0500
committerLinus Torvalds <torvalds@g5.osdl.org>2006-03-25 12:10:55 -0500
commitf2d3efedbecc04dc348d723e4c90b46731b3bb48 (patch)
tree982c7838a97a5c2420de392e5a36f49eaa1778b0 /arch/x86_64/kernel
parentf083a329e63d471a5e9238e837772b1b76c218db (diff)
[PATCH] x86_64: Implement early DMI scanning
There are more and more cases where we need to know DMI information early to work around bugs. i386 already had early DMI scanning, but x86-64 didn't. Implement this now. This required some cleanup in the i386 code. Signed-off-by: Andi Kleen <ak@suse.de> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'arch/x86_64/kernel')
-rw-r--r--arch/x86_64/kernel/setup.c16
1 files changed, 9 insertions, 7 deletions
diff --git a/arch/x86_64/kernel/setup.c b/arch/x86_64/kernel/setup.c
index 49f285871df5..8acf5313e835 100644
--- a/arch/x86_64/kernel/setup.c
+++ b/arch/x86_64/kernel/setup.c
@@ -68,6 +68,7 @@
68#include <asm/swiotlb.h> 68#include <asm/swiotlb.h>
69#include <asm/sections.h> 69#include <asm/sections.h>
70#include <asm/gart-mapping.h> 70#include <asm/gart-mapping.h>
71#include <asm/dmi.h>
71 72
72/* 73/*
73 * Machine setup.. 74 * Machine setup..
@@ -92,6 +93,12 @@ int bootloader_type;
92 93
93unsigned long saved_video_mode; 94unsigned long saved_video_mode;
94 95
96/*
97 * Early DMI memory
98 */
99int dmi_alloc_index;
100char dmi_alloc_data[DMI_MAX_DATA];
101
95/* 102/*
96 * Setup options 103 * Setup options
97 */ 104 */
@@ -620,6 +627,8 @@ void __init setup_arch(char **cmdline_p)
620 627
621 init_memory_mapping(0, (end_pfn_map << PAGE_SHIFT)); 628 init_memory_mapping(0, (end_pfn_map << PAGE_SHIFT));
622 629
630 dmi_scan_machine();
631
623 zap_low_mappings(0); 632 zap_low_mappings(0);
624 633
625#ifdef CONFIG_ACPI 634#ifdef CONFIG_ACPI
@@ -1412,10 +1421,3 @@ struct seq_operations cpuinfo_op = {
1412 .show = show_cpuinfo, 1421 .show = show_cpuinfo,
1413}; 1422};
1414 1423
1415static int __init run_dmi_scan(void)
1416{
1417 dmi_scan_machine();
1418 return 0;
1419}
1420core_initcall(run_dmi_scan);
1421