Upgrade to 4.4.50-rt62
[kvmfornfv.git] / kernel / arch / sparc / kernel / tsb.S
index be98685..d568c82 100644 (file)
         */
 tsb_miss_dtlb:
        mov             TLB_TAG_ACCESS, %g4
+       ldxa            [%g4] ASI_DMMU, %g4
+       srlx            %g4, PAGE_SHIFT, %g4
        ba,pt           %xcc, tsb_miss_page_table_walk
-        ldxa           [%g4] ASI_DMMU, %g4
+        sllx           %g4, PAGE_SHIFT, %g4
 
 tsb_miss_itlb:
        mov             TLB_TAG_ACCESS, %g4
+       ldxa            [%g4] ASI_IMMU, %g4
+       srlx            %g4, PAGE_SHIFT, %g4
        ba,pt           %xcc, tsb_miss_page_table_walk
-        ldxa           [%g4] ASI_IMMU, %g4
+        sllx           %g4, PAGE_SHIFT, %g4
 
        /* At this point we have:
         * %g1 --       PAGE_SIZE TSB entry address
@@ -284,6 +288,10 @@ tsb_do_dtlb_fault:
        nop
        .previous
 
+       /* Clear context ID bits.  */
+       srlx            %g5, PAGE_SHIFT, %g5
+       sllx            %g5, PAGE_SHIFT, %g5
+
        be,pt   %xcc, sparc64_realfault_common
         mov    FAULT_CODE_DTLB, %g4
        ba,pt   %xcc, winfix_trampoline