Messages in this thread Patch in this message | | | From | Thomas Schlichter <> | Subject | Re: [PATCH][2.5] flush_tlb_all is not preempt safe. | Date | Wed, 19 Feb 2003 21:23:50 +0100 |
| |
Hi,
I've created a patch based on yours to solve the flush_tlb_all preempt-issue for x86_64 and the i386/mach-voyager subarchitecture. I'm not sure if the ia64 architecture would need to be patched, too...?
Wouldn't it even have been possible to solve this problem just by swapping the two original lines?
Best regards Thomas Schlichter--- linux-2.5.62/arch/i386/mach-voyager/voyager_smp.c.orig Wed Feb 19 16:43:22 2003 +++ linux-2.5.62/arch/i386/mach-voyager/voyager_smp.c Wed Feb 19 16:43:57 2003 @@ -1230,9 +1230,11 @@ void flush_tlb_all(void) { + preempt_disable(); smp_call_function (flush_tlb_all_function, 0, 1, 1); do_flush_tlb_all_local(); + preempt_enable(); } /* used to set up the trampoline for other CPUs when the memory manager --- linux-2.5.62/arch/x86_64/kernel/smp.c.orig Wed Feb 19 21:08:20 2003 +++ linux-2.5.62/arch/x86_64/kernel/smp.c Wed Feb 19 21:09:40 2003 @@ -344,9 +344,11 @@ void flush_tlb_all(void) { + preempt_disable(); smp_call_function (flush_tlb_all_ipi,0,1,1); do_flush_tlb_all_local(); + preempt_enable(); } void smp_kdb_stop(void)[unhandled content-type:application/pgp-signature] | |