add upstream patches

This commit is contained in:
Ertuğrul Erata
2017-03-26 21:12:54 +03:00
parent e4cfb71658
commit e7de993085
4 changed files with 111 additions and 2 deletions
@@ -0,0 +1,38 @@
From 0a2dbb3392ee710838bea6bda80d4daad6b54780 Mon Sep 17 00:00:00 2001
From: Scot Doyle <lkml14@scotdoyle.com>
Date: Sat, 18 Apr 2015 07:11:07 -0400
Subject: [PATCH] com32/lib/syslinux/load_linux.c: update prot_mode_base
If the kernel is relocatable and the protected mode code will not fit
in the initially determined location, that code will be moved to the
next available location. However, beginning with commit 8f470e7b, the
code is moved to the initially determined location instead of the next
available location because prot_mode_base is no longer updated to the
correct location. Since whdr->code32_start is updated, it is pointing
to the wrong execution start location, random code is executed and
the machine is rebooted.
Restore the old behavior by assigning prot_mode_base the value of
base. Tested on a machine that exposed this behavior.
Signed-off-by: Scot Doyle <lkml14@scotdoyle.com>
Signed-off-by: Gene Cumm <gene.cumm@gmail.com>
---
com32/lib/syslinux/load_linux.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/com32/lib/syslinux/load_linux.c b/com32/lib/syslinux/load_linux.c
index ac73729..fc7f04f 100644
--- a/com32/lib/syslinux/load_linux.c
+++ b/com32/lib/syslinux/load_linux.c
@@ -323,6 +323,7 @@ int bios_boot_linux(void *kernel_buf, size_t kernel_size,
}
whdr->code32_start += base - prot_mode_base;
+ prot_mode_base = base;
/* Real mode code */
if (syslinux_memmap_find(amap, &real_mode_base,
--
2.7.4.GIT
@@ -0,0 +1,32 @@
From 138e850fab106b5235178848b3e0d33e25f4d3a2 Mon Sep 17 00:00:00 2001
From: Olivier Brunel <jjk@jjacky.com>
Date: Wed, 2 Mar 2016 17:52:23 -0500
Subject: [PATCH] keytab-lilo: update to support kbd 2.0.3 format
Since kbd 2.0.3 (commit 6ff47cf2) the format generated by 'loadkeys -m' has
changed slightly, using "unsigned short" instead of "u_short"
Signed-off-by: Olivier Brunel <jjk@jjacky.com>
---
utils/keytab-lilo | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/utils/keytab-lilo b/utils/keytab-lilo
index 9e34160..337a869 100755
--- a/utils/keytab-lilo
+++ b/utils/keytab-lilo
@@ -48,9 +48,9 @@ sub load_map
$empty = 1;
while (<FILE>) {
chop;
- if (/^(static\s+)?u_short\s+(\S+)_map\[\S*\]\s+=\s+{\s*$/) {
+ if (/^(static\s+)?(u_|unsigned )short\s+(\S+)_map\[\S*\]\s+=\s+{\s*$/) {
die "active at beginning of map" if defined $current;
- $current = $pfx.":".$2;
+ $current = $pfx.":".$3;
next;
}
undef $current if /^};\s*$/;
--
2.7.4.GIT
@@ -0,0 +1,32 @@
From 83aad4f69065509ba5b1c080edccfed316a4cff0 Mon Sep 17 00:00:00 2001
From: Scot Doyle <lkml14@scotdoyle.com>
Date: Sat, 7 Feb 2015 13:52:05 -0500
Subject: [PATCH] load_linux: correct a type
Correct base's type to match its initialization from prot_mode_base and
passage to syslinux_memmap_find(). Tested with extlinux.
Signed-off-by: Scot Doyle <lkml14@scotdoyle.com>
Signed-off-by: Gene Cumm <gene.cumm@gmail.com>
---
com32/lib/syslinux/load_linux.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/com32/lib/syslinux/load_linux.c b/com32/lib/syslinux/load_linux.c
index 06ae2a9..ac73729 100644
--- a/com32/lib/syslinux/load_linux.c
+++ b/com32/lib/syslinux/load_linux.c
@@ -155,8 +155,8 @@ int bios_boot_linux(void *kernel_buf, size_t kernel_size,
char *cmdline)
{
struct linux_header hdr, *whdr;
- size_t real_mode_size, prot_mode_size, base;
- addr_t real_mode_base, prot_mode_base, prot_mode_max;
+ size_t real_mode_size, prot_mode_size;
+ addr_t real_mode_base, prot_mode_base, prot_mode_max, base;
addr_t irf_size;
size_t cmdline_size, cmdline_offset;
struct setup_data *sdp;
--
2.7.4.GIT
+9 -2
View File
@@ -16,16 +16,23 @@
<BuildDependencies>
<Dependency>nasm</Dependency>
<Dependency>asciidoc</Dependency>
<Dependency>dosfstools</Dependency>
<Dependency>mtools</Dependency>
<Dependency>efibootmgr-devel</Dependency>
<Dependency>gptfdisk</Dependency>
<Dependency>upx</Dependency><!--1-->
<Dependency>libutil-linux-devel</Dependency>
<Dependency>util-linux</Dependency>
</BuildDependencies>
<Patches>
<Patch level="1">0001-Add-install-all-target-to-top-side-of-HAVE_FIRMWARE.patch</Patch>
<Patch level="1">0035-SYSAPPEND-Fix-space-stripping.patch</Patch>
<!--Patch level="1">0001-Add-install-all-target-to-top-side-of-HAVE_FIRMWARE.patch</Patch>
<Patch level="1">0035-SYSAPPEND-Fix-space-stripping.patch</Patch-->
<Patch level="1">gcc-fix-alignment.patch</Patch>
<Patch level="1">dont-guess-alignment.patch</Patch>
<Patch level="1">btrfs-fix.patch</Patch>
<Patch>syslinux.git-138e850fab106b5235178848b3e0d33e25f4d3a2.patch</Patch><!--kbd patch-->
<Patch>syslinux.git-83aad4f.patch</Patch><!--set-base patch-->
<Patch>syslinux.git-0a2dbb3.patch</Patch><!--set-mod patch-->
</Patches>
</Source>