summaryrefslogtreecommitdiff
path: root/arch/sparc/mm/ultra.S
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2009-03-23 19:25:24 +0300
committerLinus Torvalds <torvalds@linux-foundation.org>2009-03-23 19:25:24 +0300
commit12a37b5e2c93f6550b82490c3de6d4eedc509c39 (patch)
tree8407735b0d569792ec255a2627b533e403d60663 /arch/sparc/mm/ultra.S
parent53da1d9456fe7f87a920a78fdbdcf1225d197cb7 (diff)
parent0702b30dd821ac8a4103ddbe545518713fdca9be (diff)
downloadlinux-12a37b5e2c93f6550b82490c3de6d4eedc509c39.tar.xz
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-2.6
* git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-2.6: sparc64: Fix crash with /proc/iomem sparc64: Reschedule KGDB capture to a software interrupt. sbus: Auto-load openprom module when device opened.
Diffstat (limited to 'arch/sparc/mm/ultra.S')
-rw-r--r--arch/sparc/mm/ultra.S24
1 files changed, 2 insertions, 22 deletions
diff --git a/arch/sparc/mm/ultra.S b/arch/sparc/mm/ultra.S
index 80c788ec7c32..b57a5942ba64 100644
--- a/arch/sparc/mm/ultra.S
+++ b/arch/sparc/mm/ultra.S
@@ -679,28 +679,8 @@ xcall_new_mmu_context_version:
#ifdef CONFIG_KGDB
.globl xcall_kgdb_capture
xcall_kgdb_capture:
-661: rdpr %pstate, %g2
- wrpr %g2, PSTATE_IG | PSTATE_AG, %pstate
- .section .sun4v_2insn_patch, "ax"
- .word 661b
- nop
- nop
- .previous
-
- rdpr %pil, %g2
- wrpr %g0, PIL_NORMAL_MAX, %pil
- sethi %hi(109f), %g7
- ba,pt %xcc, etrap_irq
-109: or %g7, %lo(109b), %g7
-#ifdef CONFIG_TRACE_IRQFLAGS
- call trace_hardirqs_off
- nop
-#endif
- call smp_kgdb_capture_client
- add %sp, PTREGS_OFF, %o0
- /* Has to be a non-v9 branch due to the large distance. */
- ba rtrap_xcall
- ldx [%sp + PTREGS_OFF + PT_V9_TSTATE], %l1
+ wr %g0, (1 << PIL_KGDB_CAPTURE), %set_softint
+ retry
#endif
#endif /* CONFIG_SMP */