| .. | .. |
|---|
| 1 | 1 | #include <linux/linkage.h> |
|---|
| 2 | +#include <asm-generic/export.h> |
|---|
| 2 | 3 | #include <asm/asm.h> |
|---|
| 3 | 4 | #include <asm/csr.h> |
|---|
| 4 | 5 | |
|---|
| 5 | | - .altmacro |
|---|
| 6 | 6 | .macro fixup op reg addr lbl |
|---|
| 7 | | - LOCAL _epc |
|---|
| 8 | | -_epc: |
|---|
| 7 | +100: |
|---|
| 9 | 8 | \op \reg, \addr |
|---|
| 10 | 9 | .section __ex_table,"a" |
|---|
| 11 | 10 | .balign RISCV_SZPTR |
|---|
| 12 | | - RISCV_PTR _epc, \lbl |
|---|
| 11 | + RISCV_PTR 100b, \lbl |
|---|
| 13 | 12 | .previous |
|---|
| 14 | 13 | .endm |
|---|
| 15 | 14 | |
|---|
| .. | .. |
|---|
| 18 | 17 | |
|---|
| 19 | 18 | /* Enable access to user memory */ |
|---|
| 20 | 19 | li t6, SR_SUM |
|---|
| 21 | | - csrs sstatus, t6 |
|---|
| 20 | + csrs CSR_STATUS, t6 |
|---|
| 22 | 21 | |
|---|
| 23 | 22 | add a3, a1, a2 |
|---|
| 24 | 23 | /* Use word-oriented copy only if low-order bits match */ |
|---|
| .. | .. |
|---|
| 47 | 46 | |
|---|
| 48 | 47 | 3: |
|---|
| 49 | 48 | /* Disable access to user memory */ |
|---|
| 50 | | - csrc sstatus, t6 |
|---|
| 49 | + csrc CSR_STATUS, t6 |
|---|
| 51 | 50 | li a0, 0 |
|---|
| 52 | 51 | ret |
|---|
| 53 | 52 | 4: /* Edge case: unalignment */ |
|---|
| .. | .. |
|---|
| 66 | 65 | j 3b |
|---|
| 67 | 66 | ENDPROC(__asm_copy_to_user) |
|---|
| 68 | 67 | ENDPROC(__asm_copy_from_user) |
|---|
| 68 | +EXPORT_SYMBOL(__asm_copy_to_user) |
|---|
| 69 | +EXPORT_SYMBOL(__asm_copy_from_user) |
|---|
| 69 | 70 | |
|---|
| 70 | 71 | |
|---|
| 71 | 72 | ENTRY(__clear_user) |
|---|
| 72 | 73 | |
|---|
| 73 | 74 | /* Enable access to user memory */ |
|---|
| 74 | 75 | li t6, SR_SUM |
|---|
| 75 | | - csrs sstatus, t6 |
|---|
| 76 | + csrs CSR_STATUS, t6 |
|---|
| 76 | 77 | |
|---|
| 77 | 78 | add a3, a0, a1 |
|---|
| 78 | 79 | addi t0, a0, SZREG-1 |
|---|
| .. | .. |
|---|
| 94 | 95 | |
|---|
| 95 | 96 | 3: |
|---|
| 96 | 97 | /* Disable access to user memory */ |
|---|
| 97 | | - csrc sstatus, t6 |
|---|
| 98 | + csrc CSR_STATUS, t6 |
|---|
| 98 | 99 | li a0, 0 |
|---|
| 99 | 100 | ret |
|---|
| 100 | 101 | 4: /* Edge case: unalignment */ |
|---|
| .. | .. |
|---|
| 108 | 109 | bltu a0, a3, 5b |
|---|
| 109 | 110 | j 3b |
|---|
| 110 | 111 | ENDPROC(__clear_user) |
|---|
| 112 | +EXPORT_SYMBOL(__clear_user) |
|---|
| 111 | 113 | |
|---|
| 112 | 114 | .section .fixup,"ax" |
|---|
| 113 | 115 | .balign 4 |
|---|
| 114 | 116 | /* Fixup code for __copy_user(10) and __clear_user(11) */ |
|---|
| 115 | 117 | 10: |
|---|
| 116 | 118 | /* Disable access to user memory */ |
|---|
| 117 | | - csrs sstatus, t6 |
|---|
| 119 | + csrs CSR_STATUS, t6 |
|---|
| 118 | 120 | mv a0, a2 |
|---|
| 119 | 121 | ret |
|---|
| 120 | 122 | 11: |
|---|
| 121 | | - csrs sstatus, t6 |
|---|
| 123 | + csrs CSR_STATUS, t6 |
|---|
| 122 | 124 | mv a0, a1 |
|---|
| 123 | 125 | ret |
|---|
| 124 | 126 | .previous |
|---|