[kernel] r15478 - in dists/lenny/linux-2.6/debian: . patches/bugfix/sparc patches/series

Ben Hutchings benh at alioth.debian.org
Sat Apr 3 20:34:40 UTC 2010


Author: benh
Date: Sat Apr  3 20:34:35 2010
New Revision: 15478

Log:
[sparc64] Fix definition of VMEMMAP_SIZE (Closes: #509202)

Added:
   dists/lenny/linux-2.6/debian/patches/bugfix/sparc/sparc64-Fix-definition-of-VMEMMAP_SIZE.patch
Modified:
   dists/lenny/linux-2.6/debian/changelog
   dists/lenny/linux-2.6/debian/patches/series/23

Modified: dists/lenny/linux-2.6/debian/changelog
==============================================================================
--- dists/lenny/linux-2.6/debian/changelog	Sat Apr  3 19:20:20 2010	(r15477)
+++ dists/lenny/linux-2.6/debian/changelog	Sat Apr  3 20:34:35 2010	(r15478)
@@ -2,6 +2,9 @@
 
   [ dann frazier ]
   * x86: check boundary in setup_node_bootmem() (Closes: 569704)
+  
+  [ Ben Hutchings ]
+  * [sparc64] Fix definition of VMEMMAP_SIZE (Closes: #509202)
 
   [ maximilian attems ]
   * openvz: printk_cpu have to be "cleared" in __vprintk (v2)

Added: dists/lenny/linux-2.6/debian/patches/bugfix/sparc/sparc64-Fix-definition-of-VMEMMAP_SIZE.patch
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/lenny/linux-2.6/debian/patches/bugfix/sparc/sparc64-Fix-definition-of-VMEMMAP_SIZE.patch	Sat Apr  3 20:34:35 2010	(r15478)
@@ -0,0 +1,33 @@
+From: David S. Miller <davem at davemloft.net>
+Date: Mon, 23 Nov 2009 16:38:56 -0800
+Subject: [PATCH] sparc64: Fix definition of VMEMMAP_SIZE.
+
+This was the cause of various boot failures on V480, V880, etc.
+systems.
+
+Kernel image memory was being overwritten because the vmemmap[]
+array was being sized to small.  So if you had physical memory
+addresses past a certain point, the early bootup would spam
+all over variables in the kernel data section.
+
+The vmemmap mappings map page structs, not page struct pointers.
+And that was the key thinko in the macro definition.
+
+This was fixable thanks to the help, reports, and tireless patience
+of Hermann Lauer.
+
+Reported-by: Hermann Lauer <Hermann.Lauer at iwr.uni-heidelberg.de>
+Signed-off-by: David S. Miller <davem at davemloft.net>
+[bwh: Backported to 2.6.26]
+
+--- a/arch/sparc64/mm/init.c
++++ b/arch/sparc64/mm/init.c
+@@ -2098,7 +2098,7 @@
+ #define VMEMMAP_ALIGN(x)	(((x)+VMEMMAP_CHUNK-1UL)&VMEMMAP_CHUNK_MASK)
+ 
+ #define VMEMMAP_SIZE	((((1UL << MAX_PHYSADDR_BITS) >> PAGE_SHIFT) * \
+-			  sizeof(struct page *)) >> VMEMMAP_CHUNK_SHIFT)
++			  sizeof(struct page)) >> VMEMMAP_CHUNK_SHIFT)
+ unsigned long vmemmap_table[VMEMMAP_SIZE];
+ 
+ int __meminit vmemmap_populate(struct page *start, unsigned long nr, int node)

Modified: dists/lenny/linux-2.6/debian/patches/series/23
==============================================================================
--- dists/lenny/linux-2.6/debian/patches/series/23	Sat Apr  3 19:20:20 2010	(r15477)
+++ dists/lenny/linux-2.6/debian/patches/series/23	Sat Apr  3 20:34:35 2010	(r15478)
@@ -1 +1,2 @@
 + bugfix/x86/check-boundary-in-setup_node_bootmem.patch
++ bugfix/sparc/sparc64-Fix-definition-of-VMEMMAP_SIZE.patch



More information about the Kernel-svn-changes mailing list