diff options
author | Linus Torvalds <torvalds@g5.osdl.org> | 2006-05-01 11:12:39 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-05-01 11:12:39 -0400 |
commit | 0d262424b07582a3aa3afa85af645bd436a94a39 (patch) | |
tree | 4ec3c7034bb244515904c6866642fdc9a9a4b39a | |
parent | 9f29333dae3488542b1344871e8ecb84084ad80e (diff) | |
parent | c9f2946fbec88d4baa3a6d47eb3a8e6b08b05cd9 (diff) |
Merge master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6
* master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6:
[SPARC64]: Disable preemption during flush_tlb_pending().
[SPARC64]: Kill __flush_tlb_page() prototype.
-rw-r--r-- | arch/sparc64/mm/tlb.c | 5 | ||||
-rw-r--r-- | include/asm-sparc64/tlbflush.h | 2 |
2 files changed, 5 insertions, 2 deletions
diff --git a/arch/sparc64/mm/tlb.c b/arch/sparc64/mm/tlb.c index a079cf42505e..3f10fc921b00 100644 --- a/arch/sparc64/mm/tlb.c +++ b/arch/sparc64/mm/tlb.c | |||
@@ -8,6 +8,7 @@ | |||
8 | #include <linux/percpu.h> | 8 | #include <linux/percpu.h> |
9 | #include <linux/mm.h> | 9 | #include <linux/mm.h> |
10 | #include <linux/swap.h> | 10 | #include <linux/swap.h> |
11 | #include <linux/preempt.h> | ||
11 | 12 | ||
12 | #include <asm/pgtable.h> | 13 | #include <asm/pgtable.h> |
13 | #include <asm/pgalloc.h> | 14 | #include <asm/pgalloc.h> |
@@ -24,6 +25,8 @@ void flush_tlb_pending(void) | |||
24 | { | 25 | { |
25 | struct mmu_gather *mp = &__get_cpu_var(mmu_gathers); | 26 | struct mmu_gather *mp = &__get_cpu_var(mmu_gathers); |
26 | 27 | ||
28 | preempt_disable(); | ||
29 | |||
27 | if (mp->tlb_nr) { | 30 | if (mp->tlb_nr) { |
28 | flush_tsb_user(mp); | 31 | flush_tsb_user(mp); |
29 | 32 | ||
@@ -38,6 +41,8 @@ void flush_tlb_pending(void) | |||
38 | } | 41 | } |
39 | mp->tlb_nr = 0; | 42 | mp->tlb_nr = 0; |
40 | } | 43 | } |
44 | |||
45 | preempt_enable(); | ||
41 | } | 46 | } |
42 | 47 | ||
43 | void tlb_batch_add(struct mm_struct *mm, unsigned long vaddr, pte_t *ptep, pte_t orig) | 48 | void tlb_batch_add(struct mm_struct *mm, unsigned long vaddr, pte_t *ptep, pte_t orig) |
diff --git a/include/asm-sparc64/tlbflush.h b/include/asm-sparc64/tlbflush.h index 9ad5d9c51d42..e3a7c453b500 100644 --- a/include/asm-sparc64/tlbflush.h +++ b/include/asm-sparc64/tlbflush.h | |||
@@ -22,8 +22,6 @@ extern void flush_tlb_pending(void); | |||
22 | /* Local cpu only. */ | 22 | /* Local cpu only. */ |
23 | extern void __flush_tlb_all(void); | 23 | extern void __flush_tlb_all(void); |
24 | 24 | ||
25 | extern void __flush_tlb_page(unsigned long context, unsigned long page, unsigned long r); | ||
26 | |||
27 | extern void __flush_tlb_kernel_range(unsigned long start, unsigned long end); | 25 | extern void __flush_tlb_kernel_range(unsigned long start, unsigned long end); |
28 | 26 | ||
29 | #ifndef CONFIG_SMP | 27 | #ifndef CONFIG_SMP |