All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] Fix for broken kexec on panic
@ 2005-02-24  9:13 Vivek Goyal
  2005-02-24  9:13 ` Andrew Morton
  2005-02-24 15:35 ` Dave Hansen
  0 siblings, 2 replies; 7+ messages in thread
From: Vivek Goyal @ 2005-02-24  9:13 UTC (permalink / raw)
  To: lkml, fastboot; +Cc: Andrew Morton, Eric W. Biederman, haveblue

[-- Attachment #1: Type: text/plain, Size: 569 bytes --]

Hi,

Kexec on panic is broken on i386 in 2.6.11-rc3-mm2 because of
re-organization of boot memory allocator initialization code.  Primary
kernel does not boot if kexec is enabled and crashkernel=X@Y command
line parameter is passed. After re-organization, kexec is trying to call
reserve_bootmem before boot memory allocator has initialized.

This patch fixes the problem. I have moved the call to
reserved_bootmem() for kexec for both discontig and contig memory into
new setup_bootmem_allocator().

This patch has been generated against 2.6.11-rc4-mm1

Thanks
Vivek


[-- Attachment #2: kexec-reserve-bootmem-fix.patch --]
[-- Type: text/plain, Size: 2202 bytes --]


Kexec on panic is broken on i386 in 2.6.11-rc3-mm2 because of re-organisation 
of boot memory allocator code.  Primary kernel does not boot if kexec is enabled
and crashkernel=X@Y command line parameter is passed. After re-organization,
kexec is trying to call reserve_bootmem before boot memory allocator has
initialized.
This patch fixes the problem. I have moved the call to reserved_bootmem() for
kexec for both discontig and contig memory into new setup_bootmem_allocator().


Signed-off-by: Vivek Goyal <vgoyal@in.ibm.com>
---

 linux-2.6.11-rc4-mm1-root/arch/i386/kernel/setup.c |   10 +++++-----
 linux-2.6.11-rc4-mm1-root/arch/i386/mm/discontig.c |    5 -----
 2 files changed, 5 insertions(+), 10 deletions(-)

diff -puN arch/i386/kernel/setup.c~kexec-reserve-bootmem-fix arch/i386/kernel/setup.c
--- linux-2.6.11-rc4-mm1/arch/i386/kernel/setup.c~kexec-reserve-bootmem-fix	2005-02-23 15:13:03.000000000 +0530
+++ linux-2.6.11-rc4-mm1-root/arch/i386/kernel/setup.c	2005-02-23 15:13:03.000000000 +0530
@@ -987,11 +987,6 @@ unsigned long __init find_max_low_pfn(vo
 			printk(KERN_ERR "ignoring highmem size on non-highmem kernel!\n");
 #endif
 	}
-#ifdef CONFIG_KEXEC
-	if (crashk_res.start != crashk_res.end)
-		reserve_bootmem(crashk_res.start,
-			crashk_res.end - crashk_res.start + 1);
-#endif
 	return max_low_pfn;
 }
 
@@ -1174,6 +1169,11 @@ void __init setup_bootmem_allocator(void
 		}
 	}
 #endif
+#ifdef CONFIG_KEXEC
+	if (crashk_res.start != crashk_res.end)
+		reserve_bootmem(crashk_res.start,
+			crashk_res.end - crashk_res.start + 1);
+#endif
 }
 
 /*
diff -puN arch/i386/mm/discontig.c~kexec-reserve-bootmem-fix arch/i386/mm/discontig.c
--- linux-2.6.11-rc4-mm1/arch/i386/mm/discontig.c~kexec-reserve-bootmem-fix	2005-02-23 15:13:03.000000000 +0530
+++ linux-2.6.11-rc4-mm1-root/arch/i386/mm/discontig.c	2005-02-23 15:13:03.000000000 +0530
@@ -265,11 +265,6 @@ unsigned long __init setup_memory(void)
 		find_max_pfn_node(nid);
 
 	NODE_DATA(0)->bdata = &node0_bdata;
-#ifdef CONFIG_KEXEC
-	if (crashk_res.start != crashk_res.end)
-		reserve_bootmem(crashk_res.start,
-			crashk_res.end - crashk_res.start + 1);
-#endif
 	setup_bootmem_allocator();
 	return max_low_pfn;
 }
_

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2005-02-24 15:39 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-02-24  9:13 [PATCH] Fix for broken kexec on panic Vivek Goyal
2005-02-24  9:13 ` Andrew Morton
2005-02-24 12:16   ` [Fastboot] " Maneesh Soni
2005-02-24 13:05     ` Eric W. Biederman
2005-02-24 13:41       ` Maneesh Soni
2005-02-24 12:48   ` Eric W. Biederman
2005-02-24 15:35 ` Dave Hansen

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.