Author: luther
Date: Sun Sep 17 20:37:49 2006
New Revision: 7431

Added:
   dists/trunk/linux-2.6/debian/patches/powerpc-oldworld-boot-fix.diff
Modified:
   dists/trunk/linux-2.6/debian/changelog
   dists/trunk/linux-2.6/debian/patches/series/0experimental.1

Log:
Added tentative patch to fix oldworld ramdisk size bug.
Thanks fo to Christian Aichinger for investigating and providing the patch.
(Closes: #366620, #375035).


Modified: dists/trunk/linux-2.6/debian/changelog
==============================================================================
--- dists/trunk/linux-2.6/debian/changelog      (original)
+++ dists/trunk/linux-2.6/debian/changelog      Sun Sep 17 20:37:49 2006
@@ -19,6 +19,9 @@
   * [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.

Added: dists/trunk/linux-2.6/debian/patches/powerpc-oldworld-boot-fix.diff
==============================================================================
--- (empty file)
+++ dists/trunk/linux-2.6/debian/patches/powerpc-oldworld-boot-fix.diff Sun Sep 
17 20:37:49 2006
@@ -0,0 +1,40 @@
+#
+# Patch author: Christian Aichinger <[EMAIL PROTECTED]>
+# 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));

Modified: dists/trunk/linux-2.6/debian/patches/series/0experimental.1
==============================================================================
--- dists/trunk/linux-2.6/debian/patches/series/0experimental.1 (original)
+++ dists/trunk/linux-2.6/debian/patches/series/0experimental.1 Sun Sep 17 
20:37:49 2006
@@ -30,3 +30,4 @@
 + arm-iop-fix-cpuid
 + arm-get_unaligned-gcc41-const.patch
 + powerpc-serial.patch
++ powerpc-oldworld-boot-fix.diff

_______________________________________________
Kernel-svn-changes mailing list
Kernel-svn-changes@lists.alioth.debian.org
http://lists.alioth.debian.org/mailman/listinfo/kernel-svn-changes

Reply via email to