diff options
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 | } | ||