diff options
author | Huang, Ying <ying.huang@intel.com> | 2008-06-02 02:26:25 -0400 |
---|---|---|
committer | Thomas Gleixner <tglx@linutronix.de> | 2008-06-05 09:10:02 -0400 |
commit | c45a707dbe35cb9aa6490223e5b1129fa3583948 (patch) | |
tree | d9299dc6c099cc91c7a00370515146e3999ae5d5 /arch/x86/kernel/setup.c | |
parent | 0c51a965ed3c44dd50497e74492a015680e49899 (diff) |
x86: linked list of setup_data for i386
This patch adds linked list of struct setup_data supported for i386.
Signed-off-by: Huang Ying <ying.huang@intel.com>
Cc: andi@firstfloor.org
Cc: mingo@redhat.com
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Diffstat (limited to 'arch/x86/kernel/setup.c')
-rw-r--r-- | arch/x86/kernel/setup.c | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c index 6f80b852a196..0a281f2c7157 100644 --- a/arch/x86/kernel/setup.c +++ b/arch/x86/kernel/setup.c | |||
@@ -137,3 +137,25 @@ void __init setup_per_cpu_areas(void) | |||
137 | } | 137 | } |
138 | 138 | ||
139 | #endif | 139 | #endif |
140 | |||
141 | void __init parse_setup_data(void) | ||
142 | { | ||
143 | struct setup_data *data; | ||
144 | u64 pa_data; | ||
145 | |||
146 | if (boot_params.hdr.version < 0x0209) | ||
147 | return; | ||
148 | pa_data = boot_params.hdr.setup_data; | ||
149 | while (pa_data) { | ||
150 | data = early_ioremap(pa_data, PAGE_SIZE); | ||
151 | switch (data->type) { | ||
152 | default: | ||
153 | break; | ||
154 | } | ||
155 | #ifndef CONFIG_DEBUG_BOOT_PARAMS | ||
156 | free_early(pa_data, pa_data+sizeof(*data)+data->len); | ||
157 | #endif | ||
158 | pa_data = data->next; | ||
159 | early_iounmap(data, PAGE_SIZE); | ||
160 | } | ||
161 | } | ||