aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaul Mundt <lethal@linux-sh.org>2009-07-29 09:06:58 -0400
committerPaul Mundt <lethal@linux-sh.org>2009-07-29 09:06:58 -0400
commit3ed6e129390fb872c3b7e05a232e5d380fbdfb48 (patch)
treec6cf9564b735f85d0a37f64e239767ce86e40b36
parent9cef7492696a416663b4edb953a4eade8517ebeb (diff)
sh: Handle a NULL vma in __update_tlb() for the fast-path.
The TLB miss fast-path presently calls in to update_mmu_cache() to set up the entry, and does so with a NULL vma. Check for vma validity in the __update_tlb() ptrace checks. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
-rw-r--r--arch/sh/mm/tlb-pteaex.c2
-rw-r--r--arch/sh/mm/tlb-sh3.c2
-rw-r--r--arch/sh/mm/tlb-sh4.c2
3 files changed, 3 insertions, 3 deletions
diff --git a/arch/sh/mm/tlb-pteaex.c b/arch/sh/mm/tlb-pteaex.c
index 9aabd313cede..409b7c2b4b9d 100644
--- a/arch/sh/mm/tlb-pteaex.c
+++ b/arch/sh/mm/tlb-pteaex.c
@@ -23,7 +23,7 @@ void __update_tlb(struct vm_area_struct *vma, unsigned long address, pte_t pte)
23 /* 23 /*
24 * Handle debugger faulting in for debugee. 24 * Handle debugger faulting in for debugee.
25 */ 25 */
26 if (current->active_mm != vma->vm_mm) 26 if (vma && current->active_mm != vma->vm_mm)
27 return; 27 return;
28 28
29 local_irq_save(flags); 29 local_irq_save(flags);
diff --git a/arch/sh/mm/tlb-sh3.c b/arch/sh/mm/tlb-sh3.c
index 425f1f23cf93..ace8e6d2f59d 100644
--- a/arch/sh/mm/tlb-sh3.c
+++ b/arch/sh/mm/tlb-sh3.c
@@ -34,7 +34,7 @@ void __update_tlb(struct vm_area_struct *vma, unsigned long address, pte_t pte)
34 /* 34 /*
35 * Handle debugger faulting in for debugee. 35 * Handle debugger faulting in for debugee.
36 */ 36 */
37 if (current->active_mm != vma->vm_mm) 37 if (vma && current->active_mm != vma->vm_mm)
38 return; 38 return;
39 39
40 local_irq_save(flags); 40 local_irq_save(flags);
diff --git a/arch/sh/mm/tlb-sh4.c b/arch/sh/mm/tlb-sh4.c
index 81199f1e5945..7d3c63e707a5 100644
--- a/arch/sh/mm/tlb-sh4.c
+++ b/arch/sh/mm/tlb-sh4.c
@@ -22,7 +22,7 @@ void __update_tlb(struct vm_area_struct *vma, unsigned long address, pte_t pte)
22 /* 22 /*
23 * Handle debugger faulting in for debugee. 23 * Handle debugger faulting in for debugee.
24 */ 24 */
25 if (current->active_mm != vma->vm_mm) 25 if (vma && current->active_mm != vma->vm_mm)
26 return; 26 return;
27 27
28 local_irq_save(flags); 28 local_irq_save(flags);