aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorDavid Miller <davem@davemloft.net>2007-05-06 17:49:51 -0400
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2007-05-07 15:12:54 -0400
commit3a2cba993b0a04f258ab75e15cf3f08ada268dbd (patch)
tree7f20f6cad40c1efe18dcf5eadfb8abbc3353f9aa /arch
parent6225e93735acaa09865bce746958f1046c2e0bc3 (diff)
Quicklist support for sparc64
I ported this to sparc64 as per the patch below, tested on UP SunBlade1500 and 24 cpu Niagara T1000. Signed-off-by: David S. Miller <davem@davemloft.net> Signed-off-by: Christoph Lameter <clameter@sgi.com> Cc: "David S. Miller" <davem@davemloft.net> Cc: Andi Kleen <ak@suse.de> Cc: "Luck, Tony" <tony.luck@intel.com> Cc: William Lee Irwin III <wli@holomorphy.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'arch')
-rw-r--r--arch/sparc64/Kconfig4
-rw-r--r--arch/sparc64/mm/init.c24
-rw-r--r--arch/sparc64/mm/tsb.c2
3 files changed, 5 insertions, 25 deletions
diff --git a/arch/sparc64/Kconfig b/arch/sparc64/Kconfig
index be9e10b94ef8..ad8d6b256a70 100644
--- a/arch/sparc64/Kconfig
+++ b/arch/sparc64/Kconfig
@@ -34,6 +34,10 @@ config MMU
34 bool 34 bool
35 default y 35 default y
36 36
37config QUICKLIST
38 bool
39 default y
40
37config STACKTRACE_SUPPORT 41config STACKTRACE_SUPPORT
38 bool 42 bool
39 default y 43 default y
diff --git a/arch/sparc64/mm/init.c b/arch/sparc64/mm/init.c
index cafadcbcdf38..d7004eaf1c8e 100644
--- a/arch/sparc64/mm/init.c
+++ b/arch/sparc64/mm/init.c
@@ -164,30 +164,6 @@ unsigned long sparc64_kern_sec_context __read_mostly;
164 164
165int bigkernel = 0; 165int bigkernel = 0;
166 166
167struct kmem_cache *pgtable_cache __read_mostly;
168
169static void zero_ctor(void *addr, struct kmem_cache *cache, unsigned long flags)
170{
171 clear_page(addr);
172}
173
174extern void tsb_cache_init(void);
175
176void pgtable_cache_init(void)
177{
178 pgtable_cache = kmem_cache_create("pgtable_cache",
179 PAGE_SIZE, PAGE_SIZE,
180 SLAB_HWCACHE_ALIGN |
181 SLAB_MUST_HWCACHE_ALIGN,
182 zero_ctor,
183 NULL);
184 if (!pgtable_cache) {
185 prom_printf("Could not create pgtable_cache\n");
186 prom_halt();
187 }
188 tsb_cache_init();
189}
190
191#ifdef CONFIG_DEBUG_DCFLUSH 167#ifdef CONFIG_DEBUG_DCFLUSH
192atomic_t dcpage_flushes = ATOMIC_INIT(0); 168atomic_t dcpage_flushes = ATOMIC_INIT(0);
193#ifdef CONFIG_SMP 169#ifdef CONFIG_SMP
diff --git a/arch/sparc64/mm/tsb.c b/arch/sparc64/mm/tsb.c
index 236d02f41a01..57eb3025537a 100644
--- a/arch/sparc64/mm/tsb.c
+++ b/arch/sparc64/mm/tsb.c
@@ -252,7 +252,7 @@ static const char *tsb_cache_names[8] = {
252 "tsb_1MB", 252 "tsb_1MB",
253}; 253};
254 254
255void __init tsb_cache_init(void) 255void __init pgtable_cache_init(void)
256{ 256{
257 unsigned long i; 257 unsigned long i;
258 258