MIPS: Rewrite sysmips(MIPS_ATOMIC_SET, ...) in C with inline assembler
[pandora-kernel.git] / arch / mips / kernel / scall64-64.S
index 3d866f2..b97b993 100644 (file)
@@ -124,78 +124,6 @@ illegal_syscall:
        j       n64_syscall_exit
        END(handle_sys64)
 
-       LEAF(mips_atomic_set)
-       andi    v0, a1, 3                       # must be word aligned
-       bnez    v0, bad_alignment
-
-       LONG_L  v1, TI_ADDR_LIMIT($28)          # in legal address range?
-       LONG_ADDIU      a0, a1, 4
-       or      a0, a0, a1
-       and     a0, a0, v1
-       bltz    a0, bad_address
-
-#ifdef CONFIG_CPU_HAS_LLSC
-       /* Ok, this is the ll/sc case.  World is sane :-)  */
-1:     ll      v0, (a1)
-       move    a0, a2
-2:     sc      a0, (a1)
-#if R10000_LLSC_WAR
-       beqzl   a0, 1b
-#else
-       beqz    a0, 1b
-#endif
-
-       .section __ex_table,"a"
-       PTR     1b, bad_stack
-       PTR     2b, bad_stack
-       .previous
-#else
-       sw      a1, 16(sp)
-       sw      a2, 20(sp)
-
-       move    a0, sp
-       move    a2, a1
-       li      a1, 1
-       jal     do_page_fault
-
-       lw      a1, 16(sp)
-       lw      a2, 20(sp)
-
-       /*
-        * At this point the page should be readable and writable unless
-        * there was no more memory available.
-        */
-1:     lw      v0, (a1)
-2:     sw      a2, (a1)
-
-       .section __ex_table,"a"
-       PTR     1b, no_mem
-       PTR     2b, no_mem
-       .previous
-#endif
-
-       sd      zero, PT_R7(sp)         # success
-       sd      v0, PT_R2(sp)           # result
-
-       j       n64_syscall_exit        # continue like a normal syscall
-
-no_mem:        li      v0, -ENOMEM
-       jr      ra
-
-bad_address:
-       li      v0, -EFAULT
-       jr      ra
-
-bad_alignment:
-       li      v0, -EINVAL
-       jr      ra
-       END(mips_atomic_set)
-
-       LEAF(sys_sysmips)
-       beq     a0, MIPS_ATOMIC_SET, mips_atomic_set
-       j       _sys_sysmips
-       END(sys_sysmips)
-
        .align  3
 sys_call_table:
        PTR     sys_read                        /* 5000 */