[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <E1LScjM-00073R-Cu@eag09.americas.sgi.com>
Date: Thu, 29 Jan 2009 13:39:16 -0600
From: Cliff Wickman <cpw@....com>
To: linux-kernel@...r.kernel.org
Cc: mingo@...e.hu, tj@...nel.org
Subject: [PATCH] x86: UV cleanup
From: Cliff Wickman <cpw@....com>
This patch tweaks a couple things:
- uv_flush_tlb_others()
the WARN_ON(!in_atomic()); fails if CONFIG_PREEMPT is not enabled
The #ifdef may not be the right fix. The fix is probably in the
in_atomic macro, but I'm not sure what in_atomic() should return
if CONFIG_PREEMPT is turned off. I tested making it return 1 in that
case, but that yielded tons of warnings.
The simpler fix for tlb_uv.c would be to just drop the WARN_ON.
- uv_flush_send_and_wait() should return a pointer if the broadcast
remote tlb shootdown requests fail. That causes the conventional IPI
method of shootdown to be used.
Diffed against 2.6.29-rc2
(Ingo's tree)
Signed-off-by: Cliff Wickman <cpw@....com>
---
arch/x86/kernel/tlb_uv.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
Index: linux/arch/x86/kernel/tlb_uv.c
===================================================================
--- linux.orig/arch/x86/kernel/tlb_uv.c
+++ linux/arch/x86/kernel/tlb_uv.c
@@ -259,7 +259,7 @@ const struct cpumask *uv_flush_send_and_
* the cpu's, all of which are still in the mask.
*/
__get_cpu_var(ptcstats).ptc_i++;
- return 0;
+ return flush_mask;
}
/*
@@ -316,7 +316,9 @@ const struct cpumask *uv_flush_tlb_other
int locals = 0;
struct bau_desc *bau_desc;
+#ifdef CONFIG_PREEMPT
WARN_ON(!in_atomic());
+#endif
cpumask_andnot(flush_mask, cpumask, cpumask_of(cpu));
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists