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 /arch/x86 | |
| 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>
Diffstat (limited to 'arch/x86')
| -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; |
