aboutsummaryrefslogtreecommitdiffstats
path: root/arch/sh/mm
diff options
context:
space:
mode:
authorPaul Mundt <lethal@linux-sh.org>2006-09-27 04:03:56 -0400
committerPaul Mundt <lethal@linux-sh.org>2006-09-27 04:03:56 -0400
commit0f08f338083cc1d68788ccbccc44bd0502fc57ae (patch)
tree97c69dbbd63a108a7367644dadedd390a3948f0c /arch/sh/mm
parent9e3043c091819729ecf4fc5063d0a2d0954dfd7f (diff)
sh: More cosmetic cleanups and trivial fixes.
Nothing exciting here, just trivial fixes.. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Diffstat (limited to 'arch/sh/mm')
-rw-r--r--arch/sh/mm/cache-sh7705.c19
-rw-r--r--arch/sh/mm/fault.c13
-rw-r--r--arch/sh/mm/pmb.c4
3 files changed, 14 insertions, 22 deletions
diff --git a/arch/sh/mm/cache-sh7705.c b/arch/sh/mm/cache-sh7705.c
index bf94eedb0a8e..045abdf078f5 100644
--- a/arch/sh/mm/cache-sh7705.c
+++ b/arch/sh/mm/cache-sh7705.c
@@ -9,7 +9,6 @@
9 * for more details. 9 * for more details.
10 * 10 *
11 */ 11 */
12
13#include <linux/init.h> 12#include <linux/init.h>
14#include <linux/mman.h> 13#include <linux/mman.h>
15#include <linux/mm.h> 14#include <linux/mm.h>
@@ -25,14 +24,10 @@
25#include <asm/mmu_context.h> 24#include <asm/mmu_context.h>
26#include <asm/cacheflush.h> 25#include <asm/cacheflush.h>
27 26
28/* The 32KB cache on the SH7705 suffers from the same synonym problem 27/*
29 * as SH4 CPUs */ 28 * The 32KB cache on the SH7705 suffers from the same synonym problem
30 29 * as SH4 CPUs
31#define __pte_offset(address) \ 30 */
32 ((address >> PAGE_SHIFT) & (PTRS_PER_PTE - 1))
33#define pte_offset(dir, address) ((pte_t *) pmd_page_vaddr(*(dir)) + \
34 __pte_offset(address))
35
36static inline void cache_wback_all(void) 31static inline void cache_wback_all(void)
37{ 32{
38 unsigned long ways, waysize, addrstart; 33 unsigned long ways, waysize, addrstart;
@@ -73,7 +68,6 @@ void flush_icache_range(unsigned long start, unsigned long end)
73 __flush_wback_region((void *)start, end - start); 68 __flush_wback_region((void *)start, end - start);
74} 69}
75 70
76
77/* 71/*
78 * Writeback&Invalidate the D-cache of the page 72 * Writeback&Invalidate the D-cache of the page
79 */ 73 */
@@ -128,7 +122,6 @@ static void __flush_dcache_page(unsigned long phys)
128 local_irq_restore(flags); 122 local_irq_restore(flags);
129} 123}
130 124
131
132/* 125/*
133 * Write back & invalidate the D-cache of the page. 126 * Write back & invalidate the D-cache of the page.
134 * (To avoid "alias" issues) 127 * (To avoid "alias" issues)
@@ -186,7 +179,8 @@ void flush_cache_range(struct vm_area_struct *vma, unsigned long start,
186 * 179 *
187 * ADDRESS: Virtual Address (U0 address) 180 * ADDRESS: Virtual Address (U0 address)
188 */ 181 */
189void flush_cache_page(struct vm_area_struct *vma, unsigned long address, unsigned long pfn) 182void flush_cache_page(struct vm_area_struct *vma, unsigned long address,
183 unsigned long pfn)
190{ 184{
191 __flush_dcache_page(pfn << PAGE_SHIFT); 185 __flush_dcache_page(pfn << PAGE_SHIFT);
192} 186}
@@ -203,4 +197,3 @@ void flush_icache_page(struct vm_area_struct *vma, struct page *page)
203{ 197{
204 __flush_purge_region(page_address(page), PAGE_SIZE); 198 __flush_purge_region(page_address(page), PAGE_SIZE);
205} 199}
206
diff --git a/arch/sh/mm/fault.c b/arch/sh/mm/fault.c
index dc461d2bc183..c69fd603226a 100644
--- a/arch/sh/mm/fault.c
+++ b/arch/sh/mm/fault.c
@@ -13,6 +13,8 @@
13 */ 13 */
14#include <linux/kernel.h> 14#include <linux/kernel.h>
15#include <linux/mm.h> 15#include <linux/mm.h>
16#include <linux/hardirq.h>
17#include <linux/kprobes.h>
16#include <asm/system.h> 18#include <asm/system.h>
17#include <asm/mmu_context.h> 19#include <asm/mmu_context.h>
18#include <asm/kgdb.h> 20#include <asm/kgdb.h>
@@ -188,15 +190,16 @@ do_sigbus:
188/* 190/*
189 * Called with interrupts disabled. 191 * Called with interrupts disabled.
190 */ 192 */
191asmlinkage int __do_page_fault(struct pt_regs *regs, unsigned long writeaccess, 193asmlinkage int __kprobes __do_page_fault(struct pt_regs *regs,
192 unsigned long address) 194 unsigned long writeaccess,
195 unsigned long address)
193{ 196{
194 pgd_t *pgd; 197 pgd_t *pgd;
195 pud_t *pud; 198 pud_t *pud;
196 pmd_t *pmd; 199 pmd_t *pmd;
197 pte_t *pte; 200 pte_t *pte;
198 pte_t entry; 201 pte_t entry;
199 struct mm_struct *mm; 202 struct mm_struct *mm = current->mm;
200 spinlock_t *ptl; 203 spinlock_t *ptl;
201 int ret = 1; 204 int ret = 1;
202 205
@@ -214,10 +217,10 @@ asmlinkage int __do_page_fault(struct pt_regs *regs, unsigned long writeaccess,
214 pgd = pgd_offset_k(address); 217 pgd = pgd_offset_k(address);
215 mm = NULL; 218 mm = NULL;
216 } else { 219 } else {
217 if (unlikely(address >= TASK_SIZE || !(mm = current->mm))) 220 if (unlikely(address >= TASK_SIZE || !mm))
218 return 1; 221 return 1;
219 222
220 pgd = pgd_offset(current->mm, address); 223 pgd = pgd_offset(mm, address);
221 } 224 }
222 225
223 pud = pud_offset(pgd, address); 226 pud = pud_offset(pgd, address);
diff --git a/arch/sh/mm/pmb.c b/arch/sh/mm/pmb.c
index 819fd0faf022..92e745341e4d 100644
--- a/arch/sh/mm/pmb.c
+++ b/arch/sh/mm/pmb.c
@@ -337,10 +337,8 @@ static int __init pmb_init(void)
337 337
338 return 0; 338 return 0;
339} 339}
340
341arch_initcall(pmb_init); 340arch_initcall(pmb_init);
342 341
343#ifdef CONFIG_DEBUG_FS
344static int pmb_seq_show(struct seq_file *file, void *iter) 342static int pmb_seq_show(struct seq_file *file, void *iter)
345{ 343{
346 int i; 344 int i;
@@ -399,6 +397,4 @@ static int __init pmb_debugfs_init(void)
399 397
400 return 0; 398 return 0;
401} 399}
402
403postcore_initcall(pmb_debugfs_init); 400postcore_initcall(pmb_debugfs_init);
404#endif