diff options
author | David Howells <dhowells@redhat.com> | 2008-04-10 11:10:55 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2008-04-10 16:41:29 -0400 |
commit | e31c243f984628d02f045dc4b622f1e2827860dc (patch) | |
tree | cd2ac2f33c7da86b515087260d93179b31fd1671 /arch/frv/kernel/entry-table.S | |
parent | 0c93d8e4d342b1b5cda1037f2527fcf443c80fbc (diff) |
FRV: Add support for emulation of userspace atomic ops [try #2]
Use traps 120-126 to emulate atomic cmpxchg32, xchg32, and XOR-, OR-, AND-, SUB-
and ADD-to-memory operations for userspace.
Signed-off-by: David Howells <dhowells@redhat.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'arch/frv/kernel/entry-table.S')
-rw-r--r-- | arch/frv/kernel/entry-table.S | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/arch/frv/kernel/entry-table.S b/arch/frv/kernel/entry-table.S index d3b9253d862a..bf35f33e48c9 100644 --- a/arch/frv/kernel/entry-table.S +++ b/arch/frv/kernel/entry-table.S | |||
@@ -316,8 +316,14 @@ __trap_fixup_kernel_data_tlb_miss: | |||
316 | .section .trap.vector | 316 | .section .trap.vector |
317 | .org TBR_TT_TRAP0 >> 2 | 317 | .org TBR_TT_TRAP0 >> 2 |
318 | .long system_call | 318 | .long system_call |
319 | .rept 126 | 319 | .rept 119 |
320 | .long __entry_unsupported_trap | 320 | .long __entry_unsupported_trap |
321 | .endr | 321 | .endr |
322 | |||
323 | # userspace atomic op emulation, traps 120-126 | ||
324 | .rept 7 | ||
325 | .long __entry_atomic_op | ||
326 | .endr | ||
327 | |||
322 | .org TBR_TT_BREAK >> 2 | 328 | .org TBR_TT_BREAK >> 2 |
323 | .long __entry_debug_exception | 329 | .long __entry_debug_exception |