diff options
author | Paul Mundt <lethal@linux-sh.org> | 2009-07-29 09:06:58 -0400 |
---|---|---|
committer | Paul Mundt <lethal@linux-sh.org> | 2009-07-29 09:06:58 -0400 |
commit | 3ed6e129390fb872c3b7e05a232e5d380fbdfb48 (patch) | |
tree | c6cf9564b735f85d0a37f64e239767ce86e40b36 | |
parent | 9cef7492696a416663b4edb953a4eade8517ebeb (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.c | 2 | ||||
-rw-r--r-- | arch/sh/mm/tlb-sh3.c | 2 | ||||
-rw-r--r-- | arch/sh/mm/tlb-sh4.c | 2 |
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); |