tree 0c01a7e7ee5f00cc309a04a51e4fc9a6d2e3ff33
parent 19aaabb5841439988fc357f90d5c59d28fa84658
author Ashok Raj <[EMAIL PROTECTED]> Wed, 07 Sep 2005 05:16:18 -0700
committer Linus Torvalds <[EMAIL PROTECTED]> Thu, 08 Sep 2005 06:57:16 -0700

[PATCH] x86_64: Fix cluster mode send_IPI_allbutself to use get_cpu()/put_cpu()

Need to ensure we dont get prempted when we clear ourself from mask when using
clustered mode genapic code.

Signed-off-by: Ashok Raj <[EMAIL PROTECTED]>
Acked-by: Andi Kleen <[EMAIL PROTECTED]>
Signed-off-by: Andrew Morton <[EMAIL PROTECTED]>
Signed-off-by: Linus Torvalds <[EMAIL PROTECTED]>

 arch/x86_64/kernel/genapic_cluster.c |    6 +++++-
 1 files changed, 5 insertions(+), 1 deletion(-)

diff --git a/arch/x86_64/kernel/genapic_cluster.c 
b/arch/x86_64/kernel/genapic_cluster.c
--- a/arch/x86_64/kernel/genapic_cluster.c
+++ b/arch/x86_64/kernel/genapic_cluster.c
@@ -72,10 +72,14 @@ static void cluster_send_IPI_mask(cpumas
 static void cluster_send_IPI_allbutself(int vector)
 {
        cpumask_t mask = cpu_online_map;
-       cpu_clear(smp_processor_id(), mask);
+       int me = get_cpu(); /* Ensure we are not preempted when we clear */
+
+       cpu_clear(me, mask);
 
        if (!cpus_empty(mask))
                cluster_send_IPI_mask(mask, vector);
+
+       put_cpu();
 }
 
 static void cluster_send_IPI_all(int vector)
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to