diff options
author | Greg Kroah-Hartman <gregkh@suse.de> | 2011-08-10 17:11:10 -0700 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2011-08-10 17:11:10 -0700 |
commit | aa98eb839f4178d92dfc641c558b036e2bd2bb6c (patch) | |
tree | 6e0c1dd6e03f99e7e0324adea25aaf4161ee1b5f | |
parent | 23a4206aa201915b0402361c5d193f486035aa24 (diff) | |
download | longterm-queue-2.6.33-aa98eb839f4178d92dfc641c558b036e2bd2bb6c.tar.gz |
.33 patches
-rw-r--r-- | queue-2.6.33/powerpc-fix-device-tree-claim-code.patch | 65 | ||||
-rw-r--r-- | queue-2.6.33/powerpc-pseries-fix-kexec-on-machines-with-more-than-4tb-of-ram.patch | 33 | ||||
-rw-r--r-- | queue-2.6.33/series | 2 |
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 |