tsb.c (2e483528cebad089d0bb3f9aebb0ada22d968ffa) tsb.c (6cb79b3f3ba2b14590cac02ee13ab7410b6225ed)
1/* arch/sparc64/mm/tsb.c
2 *
3 * Copyright (C) 2006, 2008 David S. Miller <davem@davemloft.net>
4 */
5
6#include <linux/kernel.h>
7#include <linux/preempt.h>
8#include <linux/slab.h>

--- 166 unchanged lines hidden (view full) ---

175 tsb_reg = 0x7UL;
176 page_sz = 4 * 1024 * 1024;
177 break;
178
179 default:
180 printk(KERN_ERR "TSB[%s:%d]: Impossible TSB size %lu, killing process.\n",
181 current->comm, current->pid, tsb_bytes);
182 do_exit(SIGSEGV);
1/* arch/sparc64/mm/tsb.c
2 *
3 * Copyright (C) 2006, 2008 David S. Miller <davem@davemloft.net>
4 */
5
6#include <linux/kernel.h>
7#include <linux/preempt.h>
8#include <linux/slab.h>

--- 166 unchanged lines hidden (view full) ---

175 tsb_reg = 0x7UL;
176 page_sz = 4 * 1024 * 1024;
177 break;
178
179 default:
180 printk(KERN_ERR "TSB[%s:%d]: Impossible TSB size %lu, killing process.\n",
181 current->comm, current->pid, tsb_bytes);
182 do_exit(SIGSEGV);
183 };
183 }
184 tte |= pte_sz_bits(page_sz);
185
186 if (tlb_type == cheetah_plus || tlb_type == hypervisor) {
187 /* Physical mapping, no locked TLB entry for TSB. */
188 tsb_reg |= tsb_paddr;
189
190 mm->context.tsb_block[tsb_idx].tsb_reg_val = tsb_reg;
191 mm->context.tsb_block[tsb_idx].tsb_map_vaddr = 0;

--- 18 unchanged lines hidden (view full) ---

210 break;
211#ifdef CONFIG_HUGETLB_PAGE
212 case MM_TSB_HUGE:
213 hp->pgsz_idx = HV_PGSZ_IDX_HUGE;
214 break;
215#endif
216 default:
217 BUG();
184 tte |= pte_sz_bits(page_sz);
185
186 if (tlb_type == cheetah_plus || tlb_type == hypervisor) {
187 /* Physical mapping, no locked TLB entry for TSB. */
188 tsb_reg |= tsb_paddr;
189
190 mm->context.tsb_block[tsb_idx].tsb_reg_val = tsb_reg;
191 mm->context.tsb_block[tsb_idx].tsb_map_vaddr = 0;

--- 18 unchanged lines hidden (view full) ---

210 break;
211#ifdef CONFIG_HUGETLB_PAGE
212 case MM_TSB_HUGE:
213 hp->pgsz_idx = HV_PGSZ_IDX_HUGE;
214 break;
215#endif
216 default:
217 BUG();
218 };
218 }
219 hp->assoc = 1;
220 hp->num_ttes = tsb_bytes / 16;
221 hp->ctx_idx = 0;
222 switch (tsb_idx) {
223 case MM_TSB_BASE:
224 hp->pgsz_mask = HV_PGSZ_MASK_BASE;
225 break;
226#ifdef CONFIG_HUGETLB_PAGE
227 case MM_TSB_HUGE:
228 hp->pgsz_mask = HV_PGSZ_MASK_HUGE;
229 break;
230#endif
231 default:
232 BUG();
219 hp->assoc = 1;
220 hp->num_ttes = tsb_bytes / 16;
221 hp->ctx_idx = 0;
222 switch (tsb_idx) {
223 case MM_TSB_BASE:
224 hp->pgsz_mask = HV_PGSZ_MASK_BASE;
225 break;
226#ifdef CONFIG_HUGETLB_PAGE
227 case MM_TSB_HUGE:
228 hp->pgsz_mask = HV_PGSZ_MASK_HUGE;
229 break;
230#endif
231 default:
232 BUG();
233 };
233 }
234 hp->tsb_base = tsb_paddr;
235 hp->resv = 0;
236 }
237}
238
239static struct kmem_cache *tsb_caches[8] __read_mostly;
240
241static const char *tsb_cache_names[8] = {

--- 264 unchanged lines hidden ---
234 hp->tsb_base = tsb_paddr;
235 hp->resv = 0;
236 }
237}
238
239static struct kmem_cache *tsb_caches[8] __read_mostly;
240
241static const char *tsb_cache_names[8] = {

--- 264 unchanged lines hidden ---