]> err.no Git - linux-2.6/blobdiff - arch/sparc64/kernel/winfixup.S
[ARM] 4652/1: pxa: fix a typo of pxa27x usb host clk definition
[linux-2.6] / arch / sparc64 / kernel / winfixup.S
index efe2770e8f5d715f173b13cc8ad150546ecbfbe0..c4aa110a10e5c25882896b001df4a3e5f89fd771 100644 (file)
@@ -109,16 +109,24 @@ winfix_mna:
        done
 
 fill_fixup_mna:
-       TRAP_LOAD_THREAD_REG(%g6, %g1)
        rdpr    %tstate, %g1
        and     %g1, TSTATE_CWP, %g1
        wrpr    %g1, %cwp
        ba,pt   %xcc, etrap
         rd     %pc, %g7
+       sethi   %hi(tlb_type), %g1
+       lduw    [%g1 + %lo(tlb_type)], %g1
+       cmp     %g1, 3
+       bne,pt  %icc, 1f
+        add    %sp, PTREGS_OFF, %o0
        mov     %l4, %o2
-       mov     %l5, %o1
+       call    sun4v_do_mna
+        mov    %l5, %o1
+       ba,a,pt %xcc, rtrap_clr_l6
+1:     mov     %l4, %o1
+       mov     %l5, %o2
        call    mem_address_unaligned
-        add    %sp, PTREGS_OFF, %o0
+        nop
        ba,a,pt %xcc, rtrap_clr_l6
 
 winfix_dax:
@@ -128,14 +136,21 @@ winfix_dax:
        done
 
 fill_fixup_dax:
-       TRAP_LOAD_THREAD_REG(%g6, %g1)
        rdpr    %tstate, %g1
        and     %g1, TSTATE_CWP, %g1
        wrpr    %g1, %cwp
        ba,pt   %xcc, etrap
         rd     %pc, %g7
+       sethi   %hi(tlb_type), %g1
        mov     %l4, %o1
+       lduw    [%g1 + %lo(tlb_type)], %g1
        mov     %l5, %o2
-       call    spitfire_data_access_exception
+       cmp     %g1, 3
+       bne,pt  %icc, 1f
         add    %sp, PTREGS_OFF, %o0
+       call    sun4v_data_access_exception
+        nop
+       ba,a,pt %xcc, rtrap_clr_l6
+1:     call    spitfire_data_access_exception
+        nop
        ba,a,pt %xcc, rtrap_clr_l6