summaryrefslogtreecommitdiffstats
path: root/sys/boot
diff options
context:
space:
mode:
authorru <ru@FreeBSD.org>2006-10-26 19:15:54 +0000
committerru <ru@FreeBSD.org>2006-10-26 19:15:54 +0000
commit72a6cefb676580a477cf44be390192249677b561 (patch)
tree00c76bf549010528d3d03e9074fb73617b2cf55f /sys/boot
parented868d4acd71c1e2f0b9b97a96b667a8e1a654e4 (diff)
downloadFreeBSD-src-72a6cefb676580a477cf44be390192249677b561.zip
FreeBSD-src-72a6cefb676580a477cf44be390192249677b561.tar.gz
Back out rev. 1.71 as it breaks directly loading (i386) kernels.
OK'ed by: jhb PR: i386/96430, i386/104709 MFC after: 3 days
Diffstat (limited to 'sys/boot')
-rw-r--r--sys/boot/i386/boot2/boot2.c6
-rw-r--r--sys/boot/i386/gptboot/gptboot.c6
2 files changed, 6 insertions, 6 deletions
diff --git a/sys/boot/i386/boot2/boot2.c b/sys/boot/i386/boot2/boot2.c
index bb6d171..9e239be 100644
--- a/sys/boot/i386/boot2/boot2.c
+++ b/sys/boot/i386/boot2/boot2.c
@@ -332,7 +332,7 @@ load(void)
return;
}
if (fmt == 0) {
- addr = hdr.ex.a_entry;
+ addr = hdr.ex.a_entry & 0xffffff;
p = PTOV(addr);
fs_off = PAGE_SIZE;
if (xfsread(ino, p, hdr.ex.a_text))
@@ -366,7 +366,7 @@ load(void)
j++;
}
for (i = 0; i < 2; i++) {
- p = PTOV(ep[i].p_paddr);
+ p = PTOV(ep[i].p_paddr & 0xffffff);
fs_off = ep[i].p_offset;
if (xfsread(ino, p, ep[i].p_filesz))
return;
@@ -387,7 +387,7 @@ load(void)
p += es[i].sh_size;
}
}
- addr = hdr.eh.e_entry;
+ addr = hdr.eh.e_entry & 0xffffff;
}
bootinfo.bi_esymtab = VTOP(p);
bootinfo.bi_kernelname = VTOP(kname);
diff --git a/sys/boot/i386/gptboot/gptboot.c b/sys/boot/i386/gptboot/gptboot.c
index bb6d171..9e239be 100644
--- a/sys/boot/i386/gptboot/gptboot.c
+++ b/sys/boot/i386/gptboot/gptboot.c
@@ -332,7 +332,7 @@ load(void)
return;
}
if (fmt == 0) {
- addr = hdr.ex.a_entry;
+ addr = hdr.ex.a_entry & 0xffffff;
p = PTOV(addr);
fs_off = PAGE_SIZE;
if (xfsread(ino, p, hdr.ex.a_text))
@@ -366,7 +366,7 @@ load(void)
j++;
}
for (i = 0; i < 2; i++) {
- p = PTOV(ep[i].p_paddr);
+ p = PTOV(ep[i].p_paddr & 0xffffff);
fs_off = ep[i].p_offset;
if (xfsread(ino, p, ep[i].p_filesz))
return;
@@ -387,7 +387,7 @@ load(void)
p += es[i].sh_size;
}
}
- addr = hdr.eh.e_entry;
+ addr = hdr.eh.e_entry & 0xffffff;
}
bootinfo.bi_esymtab = VTOP(p);
bootinfo.bi_kernelname = VTOP(kname);
OpenPOWER on IntegriCloud