summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGreg Kroah-Hartman <gregkh@suse.de>2011-08-10 17:11:10 -0700
committerGreg Kroah-Hartman <gregkh@suse.de>2011-08-10 17:11:10 -0700
commitaa98eb839f4178d92dfc641c558b036e2bd2bb6c (patch)
tree6e0c1dd6e03f99e7e0324adea25aaf4161ee1b5f
parent23a4206aa201915b0402361c5d193f486035aa24 (diff)
downloadlongterm-queue-2.6.33-aa98eb839f4178d92dfc641c558b036e2bd2bb6c.tar.gz
.33 patches
-rw-r--r--queue-2.6.33/powerpc-fix-device-tree-claim-code.patch65
-rw-r--r--queue-2.6.33/powerpc-pseries-fix-kexec-on-machines-with-more-than-4tb-of-ram.patch33
-rw-r--r--queue-2.6.33/series2
3 files changed, 100 insertions, 0 deletions
diff --git a/queue-2.6.33/powerpc-fix-device-tree-claim-code.patch b/queue-2.6.33/powerpc-fix-device-tree-claim-code.patch
new file mode 100644
index 0000000..5228d09
--- /dev/null
+++ b/queue-2.6.33/powerpc-fix-device-tree-claim-code.patch
@@ -0,0 +1,65 @@
+From 966728dd88b4026ec58fee169ccceaeaf56ef120 Mon Sep 17 00:00:00 2001
+From: Anton Blanchard <anton@samba.org>
+Date: Mon, 25 Jul 2011 20:47:07 +0000
+Subject: powerpc: Fix device tree claim code
+
+From: Anton Blanchard <anton@samba.org>
+
+commit 966728dd88b4026ec58fee169ccceaeaf56ef120 upstream.
+
+I have a box that fails in OF during boot with:
+
+DEFAULT CATCH!, exception-handler=fff00400
+at %SRR0: 49424d2c4c6f6768 %SRR1: 800000004000b002
+
+ie "IBM,Logh". OF got corrupted with a device tree string.
+
+Looking at make_room and alloc_up, we claim the first chunk (1 MB)
+but we never claim any more. mem_end is always set to alloc_top
+which is the top of our available address space, guaranteeing we will
+never call alloc_up and claim more memory.
+
+Also alloc_up wasn't setting alloc_bottom to the bottom of the
+available address space.
+
+This doesn't help the box to boot, but we at least fail with
+an obvious error. We could relocate the device tree in a future
+patch.
+
+Signed-off-by: Anton Blanchard <anton@samba.org>
+Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ arch/powerpc/kernel/prom_init.c | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+--- a/arch/powerpc/kernel/prom_init.c
++++ b/arch/powerpc/kernel/prom_init.c
+@@ -890,7 +890,7 @@ static unsigned long __init alloc_up(uns
+ }
+ if (addr == 0)
+ return 0;
+- RELOC(alloc_bottom) = addr;
++ RELOC(alloc_bottom) = addr + size;
+
+ prom_debug(" -> %x\n", addr);
+ prom_debug(" alloc_bottom : %x\n", RELOC(alloc_bottom));
+@@ -1704,7 +1704,7 @@ static void __init *make_room(unsigned l
+ chunk = alloc_up(room, 0);
+ if (chunk == 0)
+ prom_panic("No memory for flatten_device_tree (claim failed)");
+- *mem_end = RELOC(alloc_top);
++ *mem_end = chunk + room;
+ }
+
+ ret = (void *)*mem_start;
+@@ -1923,7 +1923,7 @@ static void __init flatten_device_tree(v
+ mem_start = (unsigned long)alloc_up(room, PAGE_SIZE);
+ if (mem_start == 0)
+ prom_panic("Can't allocate initial device-tree chunk\n");
+- mem_end = RELOC(alloc_top);
++ mem_end = mem_start + room;
+
+ /* Get root of tree */
+ root = call_prom("peer", 1, 1, (phandle)0);
diff --git a/queue-2.6.33/powerpc-pseries-fix-kexec-on-machines-with-more-than-4tb-of-ram.patch b/queue-2.6.33/powerpc-pseries-fix-kexec-on-machines-with-more-than-4tb-of-ram.patch
new file mode 100644
index 0000000..4798518
--- /dev/null
+++ b/queue-2.6.33/powerpc-pseries-fix-kexec-on-machines-with-more-than-4tb-of-ram.patch
@@ -0,0 +1,33 @@
+From bed9a31527af8ff3dfbad62a1a42815cef4baab7 Mon Sep 17 00:00:00 2001
+From: Anton Blanchard <anton@samba.org>
+Date: Tue, 26 Jul 2011 18:15:03 +0000
+Subject: powerpc: pseries: Fix kexec on machines with more than 4TB of RAM
+
+From: Anton Blanchard <anton@samba.org>
+
+commit bed9a31527af8ff3dfbad62a1a42815cef4baab7 upstream.
+
+On a box with 8TB of RAM the MMU hashtable is 64GB in size. That
+means we have 4G PTEs. pSeries_lpar_hptab_clear was using a signed
+int to store the index which will overflow at 2G.
+
+Signed-off-by: Anton Blanchard <anton@samba.org>
+Acked-by: Michael Neuling <mikey@neuling.org>
+Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ arch/powerpc/platforms/pseries/lpar.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/arch/powerpc/platforms/pseries/lpar.c
++++ b/arch/powerpc/platforms/pseries/lpar.c
+@@ -372,7 +372,7 @@ static void pSeries_lpar_hptab_clear(voi
+ unsigned long ptel;
+ } ptes[4];
+ long lpar_rc;
+- int i, j;
++ unsigned long i, j;
+
+ /* Read in batches of 4,
+ * invalidate only valid entries not in the VRMA
diff --git a/queue-2.6.33/series b/queue-2.6.33/series
index 978dbd1..f18bf3a 100644
--- a/queue-2.6.33/series
+++ b/queue-2.6.33/series
@@ -2,3 +2,5 @@
0002-net-Compute-protocol-sequence-numbers-and-fragment-I.patch
alsa-timer-fix-oops-at-closing-slave-timer.patch
alsa-snd-usb-caiaq-fix-keymap-for-rigkontrol3.patch
+powerpc-fix-device-tree-claim-code.patch
+powerpc-pseries-fix-kexec-on-machines-with-more-than-4tb-of-ram.patch