diff options
Diffstat (limited to 'arch/x86/mm/init.c')
-rw-r--r-- | arch/x86/mm/init.c | 14 |
1 files changed, 3 insertions, 11 deletions
diff --git a/arch/x86/mm/init.c b/arch/x86/mm/init.c index 1f34e9219775..2ec29ac78ae6 100644 --- a/arch/x86/mm/init.c +++ b/arch/x86/mm/init.c | |||
@@ -494,7 +494,6 @@ int devmem_is_allowed(unsigned long pagenr) | |||
494 | 494 | ||
495 | void free_init_pages(char *what, unsigned long begin, unsigned long end) | 495 | void free_init_pages(char *what, unsigned long begin, unsigned long end) |
496 | { | 496 | { |
497 | unsigned long addr; | ||
498 | unsigned long begin_aligned, end_aligned; | 497 | unsigned long begin_aligned, end_aligned; |
499 | 498 | ||
500 | /* Make sure boundaries are page aligned */ | 499 | /* Make sure boundaries are page aligned */ |
@@ -509,8 +508,6 @@ void free_init_pages(char *what, unsigned long begin, unsigned long end) | |||
509 | if (begin >= end) | 508 | if (begin >= end) |
510 | return; | 509 | return; |
511 | 510 | ||
512 | addr = begin; | ||
513 | |||
514 | /* | 511 | /* |
515 | * If debugging page accesses then do not free this memory but | 512 | * If debugging page accesses then do not free this memory but |
516 | * mark them not present - any buggy init-section access will | 513 | * mark them not present - any buggy init-section access will |
@@ -529,18 +526,13 @@ void free_init_pages(char *what, unsigned long begin, unsigned long end) | |||
529 | set_memory_nx(begin, (end - begin) >> PAGE_SHIFT); | 526 | set_memory_nx(begin, (end - begin) >> PAGE_SHIFT); |
530 | set_memory_rw(begin, (end - begin) >> PAGE_SHIFT); | 527 | set_memory_rw(begin, (end - begin) >> PAGE_SHIFT); |
531 | 528 | ||
532 | printk(KERN_INFO "Freeing %s: %luk freed\n", what, (end - begin) >> 10); | 529 | free_reserved_area((void *)begin, (void *)end, POISON_FREE_INITMEM, what); |
533 | |||
534 | for (; addr < end; addr += PAGE_SIZE) { | ||
535 | memset((void *)addr, POISON_FREE_INITMEM, PAGE_SIZE); | ||
536 | free_reserved_page(virt_to_page(addr)); | ||
537 | } | ||
538 | #endif | 530 | #endif |
539 | } | 531 | } |
540 | 532 | ||
541 | void free_initmem(void) | 533 | void free_initmem(void) |
542 | { | 534 | { |
543 | free_init_pages("unused kernel memory", | 535 | free_init_pages("unused kernel", |
544 | (unsigned long)(&__init_begin), | 536 | (unsigned long)(&__init_begin), |
545 | (unsigned long)(&__init_end)); | 537 | (unsigned long)(&__init_end)); |
546 | } | 538 | } |
@@ -566,7 +558,7 @@ void __init free_initrd_mem(unsigned long start, unsigned long end) | |||
566 | * - relocate_initrd() | 558 | * - relocate_initrd() |
567 | * So here We can do PAGE_ALIGN() safely to get partial page to be freed | 559 | * So here We can do PAGE_ALIGN() safely to get partial page to be freed |
568 | */ | 560 | */ |
569 | free_init_pages("initrd memory", start, PAGE_ALIGN(end)); | 561 | free_init_pages("initrd", start, PAGE_ALIGN(end)); |
570 | } | 562 | } |
571 | #endif | 563 | #endif |
572 | 564 | ||