aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/kernel/setup.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/x86/kernel/setup.c')
-rw-r--r--arch/x86/kernel/setup.c57
1 files changed, 29 insertions, 28 deletions
diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c
index e6b742d2a3f5..b8329029c150 100644
--- a/arch/x86/kernel/setup.c
+++ b/arch/x86/kernel/setup.c
@@ -272,6 +272,35 @@ static inline void copy_edd(void)
272} 272}
273#endif 273#endif
274 274
275void * __init extend_brk(size_t size, size_t align)
276{
277 size_t mask = align - 1;
278 void *ret;
279
280 BUG_ON(_brk_start == 0);
281 BUG_ON(align & mask);
282
283 _brk_end = (_brk_end + mask) & ~mask;
284 BUG_ON((char *)(_brk_end + size) > __brk_limit);
285
286 ret = (void *)_brk_end;
287 _brk_end += size;
288
289 memset(ret, 0, size);
290
291 return ret;
292}
293
294static void __init reserve_brk(void)
295{
296 if (_brk_end > _brk_start)
297 reserve_early(__pa(_brk_start), __pa(_brk_end), "BRK");
298
299 /* Mark brk area as locked down and no longer taking any
300 new allocations */
301 _brk_start = 0;
302}
303
275#ifdef CONFIG_BLK_DEV_INITRD 304#ifdef CONFIG_BLK_DEV_INITRD
276 305
277#ifdef CONFIG_X86_32 306#ifdef CONFIG_X86_32
@@ -340,34 +369,6 @@ static void __init relocate_initrd(void)
340} 369}
341#endif 370#endif
342 371
343void * __init extend_brk(size_t size, size_t align)
344{
345 size_t mask = align - 1;
346 void *ret;
347
348 BUG_ON(_brk_start == 0);
349 BUG_ON(align & mask);
350
351 _brk_end = (_brk_end + mask) & ~mask;
352 BUG_ON((char *)(_brk_end + size) > __brk_limit);
353
354 ret = (void *)_brk_end;
355 _brk_end += size;
356
357 memset(ret, 0, size);
358
359 return ret;
360}
361
362static void __init reserve_brk(void)
363{
364 if (_brk_end > _brk_start)
365 reserve_early(__pa(_brk_start), __pa(_brk_end), "BRK");
366
367 /* Mark brk area as locked down and no longer taking any new allocations */
368 _brk_start = 0;
369}
370
371static void __init reserve_initrd(void) 372static void __init reserve_initrd(void)
372{ 373{
373 u64 ramdisk_image = boot_params.hdr.ramdisk_image; 374 u64 ramdisk_image = boot_params.hdr.ramdisk_image;