diff options
Diffstat (limited to 'arch/sparc/kernel/syscalls.S')
-rw-r--r-- | arch/sparc/kernel/syscalls.S | 23 |
1 files changed, 2 insertions, 21 deletions
diff --git a/arch/sparc/kernel/syscalls.S b/arch/sparc/kernel/syscalls.S index dc4a458f74dc..1d7e274f3f2b 100644 --- a/arch/sparc/kernel/syscalls.S +++ b/arch/sparc/kernel/syscalls.S | |||
@@ -110,31 +110,12 @@ sys_clone: | |||
110 | 110 | ||
111 | .globl ret_from_syscall | 111 | .globl ret_from_syscall |
112 | ret_from_syscall: | 112 | ret_from_syscall: |
113 | /* Clear current_thread_info()->new_child, and | 113 | /* Clear current_thread_info()->new_child. */ |
114 | * check performance counter stuff too. | ||
115 | */ | ||
116 | stb %g0, [%g6 + TI_NEW_CHILD] | 114 | stb %g0, [%g6 + TI_NEW_CHILD] |
117 | ldx [%g6 + TI_FLAGS], %l0 | 115 | ldx [%g6 + TI_FLAGS], %l0 |
118 | call schedule_tail | 116 | call schedule_tail |
119 | mov %g7, %o0 | 117 | mov %g7, %o0 |
120 | andcc %l0, _TIF_PERFCTR, %g0 | 118 | ba,pt %xcc, ret_sys_call |
121 | be,pt %icc, 1f | ||
122 | nop | ||
123 | ldx [%g6 + TI_PCR], %o7 | ||
124 | wr %g0, %o7, %pcr | ||
125 | |||
126 | /* Blackbird errata workaround. See commentary in | ||
127 | * smp.c:smp_percpu_timer_interrupt() for more | ||
128 | * information. | ||
129 | */ | ||
130 | ba,pt %xcc, 99f | ||
131 | nop | ||
132 | |||
133 | .align 64 | ||
134 | 99: wr %g0, %g0, %pic | ||
135 | rd %pic, %g0 | ||
136 | |||
137 | 1: ba,pt %xcc, ret_sys_call | ||
138 | ldx [%sp + PTREGS_OFF + PT_V9_I0], %o0 | 119 | ldx [%sp + PTREGS_OFF + PT_V9_I0], %o0 |
139 | 120 | ||
140 | .globl sparc_exit | 121 | .globl sparc_exit |