summaryrefslogtreecommitdiffstats
path: root/arch/frv/kernel/entry-table.S
diff options
context:
space:
mode:
authorDavid Howells <dhowells@redhat.com>2008-04-10 16:10:55 +0100
committerLinus Torvalds <torvalds@linux-foundation.org>2008-04-10 13:41:29 -0700
commite31c243f984628d02f045dc4b622f1e2827860dc (patch)
treecd2ac2f33c7da86b515087260d93179b31fd1671 /arch/frv/kernel/entry-table.S
parent0c93d8e4d342b1b5cda1037f2527fcf443c80fbc (diff)
downloadop-kernel-dev-e31c243f984628d02f045dc4b622f1e2827860dc.zip
op-kernel-dev-e31c243f984628d02f045dc4b622f1e2827860dc.tar.gz
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.S8
1 files changed, 7 insertions, 1 deletions
diff --git a/arch/frv/kernel/entry-table.S b/arch/frv/kernel/entry-table.S
index d3b9253..bf35f33 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:
.section .trap.vector
.org TBR_TT_TRAP0 >> 2
.long system_call
- .rept 126
+ .rept 119
.long __entry_unsupported_trap
.endr
+
+ # userspace atomic op emulation, traps 120-126
+ .rept 7
+ .long __entry_atomic_op
+ .endr
+
.org TBR_TT_BREAK >> 2
.long __entry_debug_exception
OpenPOWER on IntegriCloud