[kernel] r7431 - in dists/trunk/linux-2.6/debian: . patches patches/series

Sven Luther luther at costa.debian.org
Sun Sep 17 20:37:50 UTC 2006


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 <Greek0 at 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));

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



More information about the Kernel-svn-changes mailing list