diff options
author | Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com> | 2009-02-27 16:35:45 -0500 |
---|---|---|
committer | H. Peter Anvin <hpa@zytor.com> | 2009-03-14 20:23:47 -0400 |
commit | 6de6cb442e76bbaf2e685150be8ddac0f237a59c (patch) | |
tree | 9ba64970ac46472e81ca90448b5e2e22f572144b | |
parent | ccf3fe02e35f4abca2589f99022cc25084bbd8ae (diff) |
x86: use brk allocation for DMI
Impact: use new interface instead of previous ad hoc implementation
Use extend_brk() to allocate memory for DMI rather than having an
ad-hoc allocator.
Signed-off-by: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
-rw-r--r-- | arch/x86/include/asm/dmi.h | 14 | ||||
-rw-r--r-- | arch/x86/kernel/setup.c | 6 |
2 files changed, 2 insertions, 18 deletions
diff --git a/arch/x86/include/asm/dmi.h b/arch/x86/include/asm/dmi.h index bc68212c6bc0..aa32f7e6c197 100644 --- a/arch/x86/include/asm/dmi.h +++ b/arch/x86/include/asm/dmi.h | |||
@@ -2,21 +2,11 @@ | |||
2 | #define _ASM_X86_DMI_H | 2 | #define _ASM_X86_DMI_H |
3 | 3 | ||
4 | #include <asm/io.h> | 4 | #include <asm/io.h> |
5 | #include <asm/setup.h> | ||
5 | 6 | ||
6 | #define DMI_MAX_DATA 2048 | ||
7 | |||
8 | extern int dmi_alloc_index; | ||
9 | extern char dmi_alloc_data[DMI_MAX_DATA]; | ||
10 | |||
11 | /* This is so early that there is no good way to allocate dynamic memory. | ||
12 | Allocate data in an BSS array. */ | ||
13 | static inline void *dmi_alloc(unsigned len) | 7 | static inline void *dmi_alloc(unsigned len) |
14 | { | 8 | { |
15 | int idx = dmi_alloc_index; | 9 | return extend_brk(len, sizeof(int)); |
16 | if ((dmi_alloc_index + len) > DMI_MAX_DATA) | ||
17 | return NULL; | ||
18 | dmi_alloc_index += len; | ||
19 | return dmi_alloc_data + idx; | ||
20 | } | 10 | } |
21 | 11 | ||
22 | /* Use early IO mappings for DMI because it's initialized early */ | 12 | /* Use early IO mappings for DMI because it's initialized early */ |
diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c index 3ac2aa7b9eaf..e894f36335f2 100644 --- a/arch/x86/kernel/setup.c +++ b/arch/x86/kernel/setup.c | |||
@@ -216,12 +216,6 @@ unsigned long mmu_cr4_features = X86_CR4_PAE; | |||
216 | int bootloader_type; | 216 | int bootloader_type; |
217 | 217 | ||
218 | /* | 218 | /* |
219 | * Early DMI memory | ||
220 | */ | ||
221 | int dmi_alloc_index; | ||
222 | char dmi_alloc_data[DMI_MAX_DATA]; | ||
223 | |||
224 | /* | ||
225 | * Setup options | 219 | * Setup options |
226 | */ | 220 | */ |
227 | struct screen_info screen_info; | 221 | struct screen_info screen_info; |