Messages in this thread Patch in this message | ![/](/images/icornerl.gif) | | From | Thomas Schlichter <> | Subject | [PATCH][2.5] flush_tlb_all is not preempt safe in x86_64 and i386/mach-voyager | Date | Thu, 20 Feb 2003 11:55:26 +0100 |
| |
This patch is based on Changeset 1.914.160.6. It solves the flush_tlb_all preempt-issue for x86_64 and the i386/mach-voyager subarchitecture.
Best regards Thomas Schlichter
P.S.: Wouldn't it even have been possible to solve this problem just by swapping the original two lines? --- 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] | ![\](/images/icornerr.gif) |