patch-2.4.21 linux-2.4.21/include/asm-s390/pgalloc.h
Next file: linux-2.4.21/include/asm-s390/pgtable.h
Previous file: linux-2.4.21/include/asm-s390/pci.h
Back to the patch index
Back to the overall index
- Lines: 22
- Date:
2003-06-13 07:51:38.000000000 -0700
- Orig file:
linux-2.4.20/include/asm-s390/pgalloc.h
- Orig date:
2001-10-11 09:43:38.000000000 -0700
diff -urN linux-2.4.20/include/asm-s390/pgalloc.h linux-2.4.21/include/asm-s390/pgalloc.h
@@ -237,14 +237,15 @@
static inline void __flush_tlb_mm(struct mm_struct * mm)
{
- if ((smp_num_cpus > 1) &&
- ((atomic_read(&mm->mm_count) != 1) ||
- (mm->cpu_vm_mask != (1UL << smp_processor_id())))) {
- mm->cpu_vm_mask = (1UL << smp_processor_id());
+ if (mm->cpu_vm_mask != (1UL << smp_processor_id())) {
+ /* mm was active on more than one cpu. */
+ if (mm == current->active_mm &&
+ atomic_read(&mm->mm_users) == 1)
+ /* this cpu is the only one using the mm. */
+ mm->cpu_vm_mask = 1UL << smp_processor_id();
global_flush_tlb();
- } else {
+ } else
local_flush_tlb();
- }
}
static inline void flush_tlb(void)
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)