ChangeSet 1.2321.2.3, 2005/03/31 16:15:46-08:00, [EMAIL PROTECTED]
[IA64] Initialize ar.k7 to empty_zero_page early on.
Without this initialization, early TLB misses to any user-regions will
cause the TLB miss handlers to go down in flames. Normally, no such
early TLB misses occur, but aggressive use of lfetch.fault can trigger
it easily (e.g., when using lfetch.fault for the
prefetch()/prefetchw() macros we get an early miss for address 0 due
to a prefetch in find_pid()).
Signed-off-by: David Mosberger-Tang <[EMAIL PROTECTED]>
Signed-off-by: Tony Luck <[EMAIL PROTECTED]>
setup.c | 9 +++++++++
1 files changed, 9 insertions(+)
diff -Nru a/arch/ia64/kernel/setup.c b/arch/ia64/kernel/setup.c
--- a/arch/ia64/kernel/setup.c 2005-03-31 18:15:19 -08:00
+++ b/arch/ia64/kernel/setup.c 2005-03-31 18:15:19 -08:00
@@ -646,6 +646,15 @@
ia64_set_kr(IA64_KR_FPU_OWNER, 0);
/*
+ * Initialize the page-table base register to a global
+ * directory with all zeroes. This ensure that we can handle
+ * TLB-misses to user address-space even before we created the
+ * first user address-space. This may happen, e.g., due to
+ * aggressive use of lfetch.fault.
+ */
+ ia64_set_kr(IA64_KR_PT_BASE, __pa(ia64_imva(empty_zero_page)));
+
+ /*
* Initialize default control register to defer all speculative faults.
The
* kernel MUST NOT depend on a particular setting of these bits (in
other words,
* the kernel must have recovery code for all speculative accesses).
Turn on
-
To unsubscribe from this list: send the line "unsubscribe bk-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at http://vger.kernel.org/majordomo-info.html