Added tentative patch to fix oldworld ramdisk size bug.

Thanks fo to Christian Aichinger for investigating and providing the patch.
(Closes: #366620, #375035).

svn path=/dists/trunk/linux-2.6/; revision=7431
This commit is contained in:
Sven Luther 2006-09-17 20:37:49 +00:00
parent 6df80675e1
commit 5254061a3f
3 changed files with 44 additions and 0 deletions

3
debian/changelog vendored
View File

@ -19,6 +19,9 @@ linux-2.6 (2.6.17+2.6.18-rc7-0experimental.1) UNRELEASED; urgency=low
* [powerpc] Updated the powerpc serial patch. This fixes the XServe serial
port, but at the cost powermac pcmcia serial cards support.
Thanks go to Mark Hymers for providing the patch.
* [powerpc] Added tentative patch to fix oldworld ramdisk size bug.
Thanks fo to Christian Aichinger for investigating and providing the
patch. (Closes: #366620, #375035).
[ Frederik Schüler ]
* Remove obsolete options from amd64 and i386 configs.

View File

@ -0,0 +1,40 @@
#
# Patch author: Christian Aichinger <Greek0@gmx.net>
# Description: Fix oldworld initrd loading problems.
# The kernel somehow loses the information where the initrd image is
# placed in memory. The correct data is there in
# arch/powerpc/kernel/prom_init.c:prom_check_initrd(), but in
# init/initramfs.c:populate_rootfs() it's wrong, initrd_{start,end}
# are both 0.
# arch/powerpc/kernel/prom_init.c:prom_check_initrd() is broken. The
# relevant part of the code is:
# Closes:
# 375035: Kernel 2.6.16 attempts to access root device before running initramfs init
# 366620: initramfs-tools: 2.6.16-1-powerpc fails to mount rootfs, 2.6.15-1-powerpc works
#
--- a/arch/powerpc/kernel/prom_init.c 2006-09-15 18:33:50.000000000 +0200
+++ b/arch/powerpc/kernel/prom_init.c 2006-09-15 18:33:44.000000000 +0200
@@ -2141,17 +2141,17 @@
struct prom_t *_prom = &RELOC(prom);
if (r3 && r4 && r4 != 0xdeadbeef) {
- unsigned long val;
+ unsigned long *ptr;
RELOC(prom_initrd_start) = is_kernel_addr(r3) ? __pa(r3) : r3;
RELOC(prom_initrd_end) = RELOC(prom_initrd_start) + r4;
- val = RELOC(prom_initrd_start);
+ ptr = &RELOC(prom_initrd_start);
prom_setprop(_prom->chosen, "/chosen", "linux,initrd-start",
- &val, sizeof(val));
- val = RELOC(prom_initrd_end);
+ ptr, sizeof(prom_initrd_start));
+ ptr = &RELOC(prom_initrd_end);
prom_setprop(_prom->chosen, "/chosen", "linux,initrd-end",
- &val, sizeof(val));
+ ptr, sizeof(prom_initrd_end));
reserve_mem(RELOC(prom_initrd_start),
RELOC(prom_initrd_end) - RELOC(prom_initrd_start));

View File

@ -30,3 +30,4 @@
+ arm-iop-fix-cpuid
+ arm-get_unaligned-gcc41-const.patch
+ powerpc-serial.patch
+ powerpc-oldworld-boot-fix.diff