lkml.org 
[lkml]   [2003]   [Feb]   [20]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
From
Subject[PATCH][2.5] flush_tlb_all is not preempt safe in x86_64 and i386/mach-voyager
Date
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]
\
 
 \ /
  Last update: 2005-03-22 13:33    [W:0.033 / U:0.280 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site