riscv: remove unused __cmpxchg_user() macro
This macro is defined but not used, remove it. Signed-off-by: Jisheng Zhang <jszhang@kernel.org> Signed-off-by: Palmer Dabbelt <palmer@rivosinc.com>
This commit is contained in:
parent
e232333be6
commit
ddad0b88d5
|
@ -388,81 +388,6 @@ unsigned long __must_check clear_user(void __user *to, unsigned long n)
|
|||
__clear_user(to, n) : n;
|
||||
}
|
||||
|
||||
/*
|
||||
* Atomic compare-and-exchange, but with a fixup for userspace faults. Faults
|
||||
* will set "err" to -EFAULT, while successful accesses return the previous
|
||||
* value.
|
||||
*/
|
||||
#define __cmpxchg_user(ptr, old, new, err, size, lrb, scb) \
|
||||
({ \
|
||||
__typeof__(ptr) __ptr = (ptr); \
|
||||
__typeof__(*(ptr)) __old = (old); \
|
||||
__typeof__(*(ptr)) __new = (new); \
|
||||
__typeof__(*(ptr)) __ret; \
|
||||
__typeof__(err) __err = 0; \
|
||||
register unsigned int __rc; \
|
||||
__enable_user_access(); \
|
||||
switch (size) { \
|
||||
case 4: \
|
||||
__asm__ __volatile__ ( \
|
||||
"0:\n" \
|
||||
" lr.w" #scb " %[ret], %[ptr]\n" \
|
||||
" bne %[ret], %z[old], 1f\n" \
|
||||
" sc.w" #lrb " %[rc], %z[new], %[ptr]\n" \
|
||||
" bnez %[rc], 0b\n" \
|
||||
"1:\n" \
|
||||
".section .fixup,\"ax\"\n" \
|
||||
".balign 4\n" \
|
||||
"2:\n" \
|
||||
" li %[err], %[efault]\n" \
|
||||
" jump 1b, %[rc]\n" \
|
||||
".previous\n" \
|
||||
".section __ex_table,\"a\"\n" \
|
||||
".balign " RISCV_SZPTR "\n" \
|
||||
" " RISCV_PTR " 1b, 2b\n" \
|
||||
".previous\n" \
|
||||
: [ret] "=&r" (__ret), \
|
||||
[rc] "=&r" (__rc), \
|
||||
[ptr] "+A" (*__ptr), \
|
||||
[err] "=&r" (__err) \
|
||||
: [old] "rJ" (__old), \
|
||||
[new] "rJ" (__new), \
|
||||
[efault] "i" (-EFAULT)); \
|
||||
break; \
|
||||
case 8: \
|
||||
__asm__ __volatile__ ( \
|
||||
"0:\n" \
|
||||
" lr.d" #scb " %[ret], %[ptr]\n" \
|
||||
" bne %[ret], %z[old], 1f\n" \
|
||||
" sc.d" #lrb " %[rc], %z[new], %[ptr]\n" \
|
||||
" bnez %[rc], 0b\n" \
|
||||
"1:\n" \
|
||||
".section .fixup,\"ax\"\n" \
|
||||
".balign 4\n" \
|
||||
"2:\n" \
|
||||
" li %[err], %[efault]\n" \
|
||||
" jump 1b, %[rc]\n" \
|
||||
".previous\n" \
|
||||
".section __ex_table,\"a\"\n" \
|
||||
".balign " RISCV_SZPTR "\n" \
|
||||
" " RISCV_PTR " 1b, 2b\n" \
|
||||
".previous\n" \
|
||||
: [ret] "=&r" (__ret), \
|
||||
[rc] "=&r" (__rc), \
|
||||
[ptr] "+A" (*__ptr), \
|
||||
[err] "=&r" (__err) \
|
||||
: [old] "rJ" (__old), \
|
||||
[new] "rJ" (__new), \
|
||||
[efault] "i" (-EFAULT)); \
|
||||
break; \
|
||||
default: \
|
||||
BUILD_BUG(); \
|
||||
} \
|
||||
__disable_user_access(); \
|
||||
(err) = __err; \
|
||||
__ret; \
|
||||
})
|
||||
|
||||
#define HAVE_GET_KERNEL_NOFAULT
|
||||
|
||||
#define __get_kernel_nofault(dst, src, type, err_label) \
|
||||
|
|
Loading…
Reference in New Issue