x86: UV: remove uv_flush_tlb_others() WARN_ON
authorCliff Wickman <cpw@sgi.com>
Fri, 6 Mar 2009 23:30:56 +0000 (17:30 -0600)
committerIngo Molnar <mingo@elte.hu>
Sun, 8 Mar 2009 10:17:15 +0000 (11:17 +0100)
In uv_flush_tlb_others() (arch/x86/kernel/tlb_uv.c),
the "WARN_ON(!in_atomic())" fails if CONFIG_PREEMPT is not enabled.

And CONFIG_PREEMPT is not enabled by default in the distribution that
most UV owners will use.

We could #ifdef CONFIG_PREEMPT the warning, but that is not good form.
And there seems to be no suitable fix to in_atomic() when CONFIG_PREMPT
is not on.

As Ingo commented:

  > and we have no proper primitive to test for atomicity. (mainly
  > because we dont know about atomicity on a non-preempt kernel)

So we drop the WARN_ON.

Signed-off-by: Cliff Wickman <cpw@sgi.com>
Signed-off-by: Tejun Heo <tj@kernel.org>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
arch/x86/kernel/tlb_uv.c

index f04549afcfe9369b8581159088808f7a7a1ffd9a..d038b9c45cf89597e10ab05d1814b2557b606994 100644 (file)
@@ -314,8 +314,6 @@ const struct cpumask *uv_flush_tlb_others(const struct cpumask *cpumask,
        int locals = 0;
        struct bau_desc *bau_desc;
 
-       WARN_ON(!in_atomic());
-
        cpumask_andnot(flush_mask, cpumask, cpumask_of(cpu));
 
        uv_cpu = uv_blade_processor_id();