[PATCH] Fix kexec x86_64 load failed bug

Huang Ying ying.huang at intel.com
Wed Nov 26 01:47:38 EST 2008


On Wed, 2008-11-26 at 14:16 +0800, Simon Horman wrote:
> On Wed, Nov 26, 2008 at 12:25:51PM +0800, Huang Ying wrote:
> > On Wed, 2008-11-26 at 11:25 +0800, Randy Dunlap wrote:
> > > This isn't kernel code?  Where is /purgatory/ ?
> > > 
> > > Anyway, for kernel code, that should be:
> > > char *cmdline_end = NULL;
> > 
> > This patch is against kexec tools, not kernel.
> > 
> > Best Regards,
> > Huang Ying
> 
> Hi Huang,
> 
> I think that I would prefer "char *cmdline_end = NULL;" for kexec-tools
> code too.

Patch v2 follows with NULL instead of 0.

Best Regards,
Huang Ying
---------------------------------------------------->
Fix a bug of kexec load on x86_64. Kexec fails to do load on x86_64, with
error message:

  Symbol: cmdline_end not found cannot set

Because kexec/arch/i386/kexec-bzImage.c accesses cmdline_end symbol in
i386 purgatory, but there is no cmdline_end in x86_64 purgatory, and
kexec-bzImage.c is used by x86_64 too.

cmdline_end is added into x86_64 purgatory to solve the bug, because kexec
jump support for x86_64 is planned.

Reported-by: Bernhard Walle <bwalle at suse.de>
Signed-off-by: Huang Ying <ying.huang at intel.com>

---
 purgatory/arch/x86_64/purgatory-x86_64.c |    2 ++
 1 file changed, 2 insertions(+)

--- a/purgatory/arch/x86_64/purgatory-x86_64.c
+++ b/purgatory/arch/x86_64/purgatory-x86_64.c
@@ -1,10 +1,12 @@
 #include <stdint.h>
+#include <stddef.h>
 #include <purgatory.h>
 #include "purgatory-x86_64.h"
 
 uint8_t reset_vga = 0;
 uint8_t legacy_pic = 0;
 uint8_t panic_kernel = 0;
+char *cmdline_end = NULL;
 
 void setup_arch(void)
 {

-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 197 bytes
Desc: This is a digitally signed message part
Url : http://lists.infradead.org/pipermail/kexec/attachments/20081126/6cac2a83/attachment.bin 


More information about the kexec mailing list