load_linux.c: consider a zImage kernel to be non-relocatable
authorH. Peter Anvin <hpa@zytor.com>
Tue, 5 May 2009 00:36:54 +0000 (17:36 -0700)
committerH. Peter Anvin <hpa@zytor.com>
Tue, 5 May 2009 00:36:54 +0000 (17:36 -0700)
It's pretty safe to say there has never been a working relocatable
Linux zImage kernel, and the semantics for them are iffy at best.
Consider zImage kernels to be non-relocatable.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
com32/lib/syslinux/load_linux.c

index 5df5f5e..ffc0baa 100644 (file)
@@ -284,7 +284,7 @@ int syslinux_boot_linux(void *kernel_buf, size_t kernel_size,
   if (!memlimit && memlimit-1 > hdr.initrd_addr_max)
     memlimit = hdr.initrd_addr_max+1; /* Zero for no limit */
 
-  if (hdr.version < 0x0205)
+  if (hdr.version < 0x0205 || !(hdr.loadflags & LOAD_HIGH))
     hdr.relocatable_kernel = 0;
 
   if (hdr.version < 0x0206)