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

Reply via email to