diff options
author | Thomas Gleixner <tglx@linutronix.de> | 2008-01-30 07:30:35 -0500 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2008-01-30 07:30:35 -0500 |
commit | 0b9c99b6f21c2e9e00938e9c57942ed71bfe4d21 (patch) | |
tree | 3d14168b8a58d03f91870b985e3dc9bf5d8aa2cc /arch/x86/kernel/smp_64.c | |
parent | 1075cf7a959f72833e54dd2d4f885617e58e3e0a (diff) |
x86: cleanup tlbflush.h variants
Bring the tlbflush.h variants into sync to prepare merging and
paravirt support.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Diffstat (limited to 'arch/x86/kernel/smp_64.c')
-rw-r--r-- | arch/x86/kernel/smp_64.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/arch/x86/kernel/smp_64.c b/arch/x86/kernel/smp_64.c index 62b0f2a1b1e8..7142447b5666 100644 --- a/arch/x86/kernel/smp_64.c +++ b/arch/x86/kernel/smp_64.c | |||
@@ -55,7 +55,6 @@ union smp_flush_state { | |||
55 | cpumask_t flush_cpumask; | 55 | cpumask_t flush_cpumask; |
56 | struct mm_struct *flush_mm; | 56 | struct mm_struct *flush_mm; |
57 | unsigned long flush_va; | 57 | unsigned long flush_va; |
58 | #define FLUSH_ALL -1ULL | ||
59 | spinlock_t tlbstate_lock; | 58 | spinlock_t tlbstate_lock; |
60 | }; | 59 | }; |
61 | char pad[SMP_CACHE_BYTES]; | 60 | char pad[SMP_CACHE_BYTES]; |
@@ -153,7 +152,7 @@ asmlinkage void smp_invalidate_interrupt(struct pt_regs *regs) | |||
153 | 152 | ||
154 | if (f->flush_mm == read_pda(active_mm)) { | 153 | if (f->flush_mm == read_pda(active_mm)) { |
155 | if (read_pda(mmu_state) == TLBSTATE_OK) { | 154 | if (read_pda(mmu_state) == TLBSTATE_OK) { |
156 | if (f->flush_va == FLUSH_ALL) | 155 | if (f->flush_va == TLB_FLUSH_ALL) |
157 | local_flush_tlb(); | 156 | local_flush_tlb(); |
158 | else | 157 | else |
159 | __flush_tlb_one(f->flush_va); | 158 | __flush_tlb_one(f->flush_va); |
@@ -166,11 +165,12 @@ out: | |||
166 | add_pda(irq_tlb_count, 1); | 165 | add_pda(irq_tlb_count, 1); |
167 | } | 166 | } |
168 | 167 | ||
169 | static void flush_tlb_others(cpumask_t cpumask, struct mm_struct *mm, | 168 | void native_flush_tlb_others(const cpumask_t *cpumaskp, struct mm_struct *mm, |
170 | unsigned long va) | 169 | unsigned long va) |
171 | { | 170 | { |
172 | int sender; | 171 | int sender; |
173 | union smp_flush_state *f; | 172 | union smp_flush_state *f; |
173 | cpumask_t cpumask = *cpumaskp; | ||
174 | 174 | ||
175 | /* Caller has disabled preemption */ | 175 | /* Caller has disabled preemption */ |
176 | sender = smp_processor_id() % NUM_INVALIDATE_TLB_VECTORS; | 176 | sender = smp_processor_id() % NUM_INVALIDATE_TLB_VECTORS; |
@@ -223,7 +223,7 @@ void flush_tlb_current_task(void) | |||
223 | 223 | ||
224 | local_flush_tlb(); | 224 | local_flush_tlb(); |
225 | if (!cpus_empty(cpu_mask)) | 225 | if (!cpus_empty(cpu_mask)) |
226 | flush_tlb_others(cpu_mask, mm, FLUSH_ALL); | 226 | flush_tlb_others(cpu_mask, mm, TLB_FLUSH_ALL); |
227 | preempt_enable(); | 227 | preempt_enable(); |
228 | } | 228 | } |
229 | 229 | ||
@@ -242,7 +242,7 @@ void flush_tlb_mm (struct mm_struct * mm) | |||
242 | leave_mm(smp_processor_id()); | 242 | leave_mm(smp_processor_id()); |
243 | } | 243 | } |
244 | if (!cpus_empty(cpu_mask)) | 244 | if (!cpus_empty(cpu_mask)) |
245 | flush_tlb_others(cpu_mask, mm, FLUSH_ALL); | 245 | flush_tlb_others(cpu_mask, mm, TLB_FLUSH_ALL); |
246 | 246 | ||
247 | preempt_enable(); | 247 | preempt_enable(); |
248 | } | 248 | } |