|
@@ -636,6 +636,11 @@ static int keep_initrd;
|
|
void free_initrd_mem(unsigned long start, unsigned long end)
|
|
void free_initrd_mem(unsigned long start, unsigned long end)
|
|
{
|
|
{
|
|
if (!keep_initrd) {
|
|
if (!keep_initrd) {
|
|
|
|
+ if (start == initrd_start)
|
|
|
|
+ start = round_down(start, PAGE_SIZE);
|
|
|
|
+ if (end == initrd_end)
|
|
|
|
+ end = round_up(end, PAGE_SIZE);
|
|
|
|
+
|
|
poison_init_mem((void *)start, PAGE_ALIGN(end) - start);
|
|
poison_init_mem((void *)start, PAGE_ALIGN(end) - start);
|
|
free_reserved_area((void *)start, (void *)end, -1, "initrd");
|
|
free_reserved_area((void *)start, (void *)end, -1, "initrd");
|
|
}
|
|
}
|