diff options
| author | Artem B. Bityuckiy <dedekind@infradead.org> | 2005-07-06 15:43:18 +0100 |
|---|---|---|
| committer | Thomas Gleixner <tglx@mtd.linutronix.de> | 2005-07-06 19:40:38 +0200 |
| commit | b3539219c9ea20ebf6a5ea3cc534f423a3607c41 (patch) | |
| tree | d17c31c0eac0a7290ba5011b59a100fd9e9c9532 /arch/ia64/kernel/smp.c | |
| parent | 6430a8def12edebc1c9c7c2621d33ca0e8653c33 (diff) | |
| parent | a18bcb7450840f07a772a45229de4811d930f461 (diff) | |
Merge with rsync://fileserver/linux
Update to 2.6.12-rc3
Diffstat (limited to 'arch/ia64/kernel/smp.c')
| -rw-r--r-- | arch/ia64/kernel/smp.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/arch/ia64/kernel/smp.c b/arch/ia64/kernel/smp.c index b49d4ddaab93..0166a9847095 100644 --- a/arch/ia64/kernel/smp.c +++ b/arch/ia64/kernel/smp.c @@ -231,13 +231,16 @@ smp_flush_tlb_all (void) void smp_flush_tlb_mm (struct mm_struct *mm) { + preempt_disable(); /* this happens for the common case of a single-threaded fork(): */ if (likely(mm == current->active_mm && atomic_read(&mm->mm_users) == 1)) { local_finish_flush_tlb_mm(mm); + preempt_enable(); return; } + preempt_enable(); /* * We could optimize this further by using mm->cpu_vm_mask to track which CPUs * have been running in the address space. It's not clear that this is worth the |
