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:
parent
6df80675e1
commit
5254061a3f
|
@ -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.
|
||||
|
|
|
@ -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));
|
|
@ -30,3 +30,4 @@
|
|||
+ arm-iop-fix-cpuid
|
||||
+ arm-get_unaligned-gcc41-const.patch
|
||||
+ powerpc-serial.patch
|
||||
+ powerpc-oldworld-boot-fix.diff
|
||||
|
|
Loading…
Reference in New Issue