[SPARC64]: Use alloc_pci_dev() in PCI bus probes.
[safe/jmp/linux-2.6] / arch / sparc64 / kernel / etrap.S
index d8c062a..4b2bf9e 100644 (file)
@@ -5,7 +5,6 @@
  * Copyright (C) 1997, 1998, 1999 Jakub Jelinek (jj@ultra.linux.cz)
  */
 
-#include <linux/config.h>
 
 #include <asm/asi.h>
 #include <asm/pstate.h>
@@ -95,7 +94,13 @@ etrap_save:  save    %g2, -STACK_BIAS, %sp
                wrpr    %g2, 0, %wstate
                sethi   %hi(sparc64_kern_pri_context), %g2
                ldx     [%g2 + %lo(sparc64_kern_pri_context)], %g3
-               stxa    %g3, [%l4] ASI_DMMU
+
+661:           stxa    %g3, [%l4] ASI_DMMU
+               .section .sun4v_1insn_patch, "ax"
+               .word   661b
+               stxa    %g3, [%l4] ASI_MMU
+               .previous
+
                sethi   %hi(KERNBASE), %l4
                flush   %l4
                mov     ASI_AIUS, %l7
@@ -182,6 +187,11 @@ etraptl1:  /* Save tstate/tpc/tnpc of TL 1-->4 and the tl register itself.
                rdpr    %tt, %g3
                stx     %g3, [%g2 + STACK_BIAS + 0x38]
 
+               sethi   %hi(is_sun4v), %g3
+               lduw    [%g3 + %lo(is_sun4v)], %g3
+               brnz,pn %g3, finish_tl1_capture
+                nop
+
                wrpr    %g0, 3, %tl
                rdpr    %tstate, %g3
                stx     %g3, [%g2 + STACK_BIAS + 0x40]
@@ -204,6 +214,7 @@ etraptl1:   /* Save tstate/tpc/tnpc of TL 1-->4 and the tl register itself.
 
                stx     %g1, [%g2 + STACK_BIAS + 0x80]
 
+finish_tl1_capture:
                wrpr    %g0, 1, %tl
 661:           nop
                .section .sun4v_1insn_patch, "ax"