aboutsummaryrefslogtreecommitdiffstats
path: root/arch/powerpc/platforms/pasemi
diff options
context:
space:
mode:
authorMichael Neuling <mikey@neuling.org>2007-12-06 01:24:48 -0500
committerPaul Mackerras <paulus@samba.org>2007-12-10 21:45:56 -0500
commit584f8b71a2e8abdaeb4b6f4fddaf542b61392453 (patch)
treec14f26334e3a3524046f0790f96564a4a4f22d92 /arch/powerpc/platforms/pasemi
parent44ef339073f67d4abcc62ae52a5fbc069d7a4d29 (diff)
[POWERPC] Use SLB size from the device tree
Currently we hardwire the number of SLBs to 64, but PAPR says we should use the ibm,slb-size property to obtain the number of SLB entries. This uses this property instead of assuming 64. If no property is found, we assume 64 entries as before. This soft patches the SLB handler, so it shouldn't change performance at all. Signed-off-by: Michael Neuling <mikey@neuling.org> Signed-off-by: Paul Mackerras <paulus@samba.org>
Diffstat (limited to 'arch/powerpc/platforms/pasemi')
-rw-r--r--arch/powerpc/platforms/pasemi/setup.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/arch/powerpc/platforms/pasemi/setup.c b/arch/powerpc/platforms/pasemi/setup.c
index 5748194a667f..6d7d068ceba0 100644
--- a/arch/powerpc/platforms/pasemi/setup.c
+++ b/arch/powerpc/platforms/pasemi/setup.c
@@ -36,6 +36,7 @@
36#include <asm/mpic.h> 36#include <asm/mpic.h>
37#include <asm/smp.h> 37#include <asm/smp.h>
38#include <asm/time.h> 38#include <asm/time.h>
39#include <asm/mmu.h>
39 40
40#include <pcmcia/ss.h> 41#include <pcmcia/ss.h>
41#include <pcmcia/cistpl.h> 42#include <pcmcia/cistpl.h>
@@ -302,7 +303,7 @@ static int pas_machine_check_handler(struct pt_regs *regs)
302 int i; 303 int i;
303 304
304 printk(KERN_ERR "slb contents:\n"); 305 printk(KERN_ERR "slb contents:\n");
305 for (i = 0; i < SLB_NUM_ENTRIES; i++) { 306 for (i = 0; i < mmu_slb_size; i++) {
306 asm volatile("slbmfee %0,%1" : "=r" (e) : "r" (i)); 307 asm volatile("slbmfee %0,%1" : "=r" (e) : "r" (i));
307 asm volatile("slbmfev %0,%1" : "=r" (v) : "r" (i)); 308 asm volatile("slbmfev %0,%1" : "=r" (v) : "r" (i));
308 printk(KERN_ERR "%02d %016lx %016lx\n", i, e, v); 309 printk(KERN_ERR "%02d %016lx %016lx\n", i, e, v);