/linux-6.3-rc2/kernel/ |
A D | rseq.c | 168 memset(rseq_cs, 0, sizeof(*rseq_cs)); in rseq_get_rseq_cs() 174 if (copy_from_user(rseq_cs, urseq_cs, sizeof(*rseq_cs))) in rseq_get_rseq_cs() 178 rseq_cs->start_ip + rseq_cs->post_commit_offset >= TASK_SIZE || in rseq_get_rseq_cs() 183 if (rseq_cs->start_ip + rseq_cs->post_commit_offset < rseq_cs->start_ip) in rseq_get_rseq_cs() 186 if (rseq_cs->abort_ip - rseq_cs->start_ip < rseq_cs->post_commit_offset) in rseq_get_rseq_cs() 259 if (clear_user(&t->rseq->rseq_cs, sizeof(t->rseq->rseq_cs))) in clear_rseq_cs() 269 static bool in_rseq_cs(unsigned long ip, struct rseq_cs *rseq_cs) in in_rseq_cs() argument 271 return ip - rseq_cs->start_ip < rseq_cs->post_commit_offset; in in_rseq_cs() 278 struct rseq_cs rseq_cs; in rseq_ip_fixup() local 352 struct rseq_cs rseq_cs; in rseq_syscall() local [all …]
|
/linux-6.3-rc2/tools/testing/selftests/rseq/ |
A D | rseq-riscv-bits.h | 19 RSEQ_ASM_STORE_RSEQ_CS(2, 1b, rseq_cs) in RSEQ_TEMPLATE_IDENTIFIER() 34 [rseq_cs] "m" (rseq_get_abi()->rseq_cs.arch.ptr), in RSEQ_TEMPLATE_IDENTIFIER() 73 RSEQ_ASM_STORE_RSEQ_CS(2, 1b, rseq_cs) in RSEQ_TEMPLATE_IDENTIFIER() 91 [rseq_cs] "m" (rseq_get_abi()->rseq_cs.arch.ptr), in RSEQ_TEMPLATE_IDENTIFIER() 127 RSEQ_ASM_STORE_RSEQ_CS(2, 1b, rseq_cs) in RSEQ_TEMPLATE_IDENTIFIER() 141 [rseq_cs] "m" (rseq_get_abi()->rseq_cs.arch.ptr), in RSEQ_TEMPLATE_IDENTIFIER() 176 RSEQ_ASM_STORE_RSEQ_CS(2, 1b, rseq_cs) in RSEQ_TEMPLATE_IDENTIFIER() 194 [rseq_cs] "m" (rseq_get_abi()->rseq_cs.arch.ptr), in RSEQ_TEMPLATE_IDENTIFIER() 252 [rseq_cs] "m" (rseq_get_abi()->rseq_cs.arch.ptr), in RSEQ_TEMPLATE_IDENTIFIER() 314 [rseq_cs] "m" (rseq_get_abi()->rseq_cs.arch.ptr), in RSEQ_TEMPLATE_IDENTIFIER() [all …]
|
A D | rseq-mips-bits.h | 26 RSEQ_ASM_STORE_RSEQ_CS(1, 3f, rseq_cs) in RSEQ_TEMPLATE_IDENTIFIER() 47 [rseq_cs] "m" (rseq_get_abi()->rseq_cs.arch.ptr), in RSEQ_TEMPLATE_IDENTIFIER() 87 RSEQ_ASM_STORE_RSEQ_CS(1, 3f, rseq_cs) in RSEQ_TEMPLATE_IDENTIFIER() 111 [rseq_cs] "m" (rseq_get_abi()->rseq_cs.arch.ptr), in RSEQ_TEMPLATE_IDENTIFIER() 150 RSEQ_ASM_STORE_RSEQ_CS(1, 3f, rseq_cs) in RSEQ_TEMPLATE_IDENTIFIER() 168 [rseq_cs] "m" (rseq_get_abi()->rseq_cs.arch.ptr), in RSEQ_TEMPLATE_IDENTIFIER() 205 RSEQ_ASM_STORE_RSEQ_CS(1, 3f, rseq_cs) in RSEQ_TEMPLATE_IDENTIFIER() 231 [rseq_cs] "m" (rseq_get_abi()->rseq_cs.arch.ptr), in RSEQ_TEMPLATE_IDENTIFIER() 284 RSEQ_ASM_STORE_RSEQ_CS(1, 3f, rseq_cs) in RSEQ_TEMPLATE_IDENTIFIER() 311 [rseq_cs] "m" (rseq_get_abi()->rseq_cs.arch.ptr), in RSEQ_TEMPLATE_IDENTIFIER() [all …]
|
A D | rseq-arm-bits.h | 26 RSEQ_ASM_STORE_RSEQ_CS(1, 3f, rseq_cs) in RSEQ_TEMPLATE_IDENTIFIER() 49 [rseq_cs] "m" (rseq_get_abi()->rseq_cs.arch.ptr), in RSEQ_TEMPLATE_IDENTIFIER() 94 RSEQ_ASM_STORE_RSEQ_CS(1, 3f, rseq_cs) in RSEQ_TEMPLATE_IDENTIFIER() 120 [rseq_cs] "m" (rseq_get_abi()->rseq_cs.arch.ptr), in RSEQ_TEMPLATE_IDENTIFIER() 164 RSEQ_ASM_STORE_RSEQ_CS(1, 3f, rseq_cs) in RSEQ_TEMPLATE_IDENTIFIER() 182 [rseq_cs] "m" (rseq_get_abi()->rseq_cs.arch.ptr), in RSEQ_TEMPLATE_IDENTIFIER() 222 RSEQ_ASM_STORE_RSEQ_CS(1, 3f, rseq_cs) in RSEQ_TEMPLATE_IDENTIFIER() 252 [rseq_cs] "m" (rseq_get_abi()->rseq_cs.arch.ptr), in RSEQ_TEMPLATE_IDENTIFIER() 311 RSEQ_ASM_STORE_RSEQ_CS(1, 3f, rseq_cs) in RSEQ_TEMPLATE_IDENTIFIER() 340 [rseq_cs] "m" (rseq_get_abi()->rseq_cs.arch.ptr), in RSEQ_TEMPLATE_IDENTIFIER() [all …]
|
A D | rseq-s390-bits.h | 21 RSEQ_ASM_STORE_RSEQ_CS(1, 3b, rseq_cs) in RSEQ_TEMPLATE_IDENTIFIER() 40 [rseq_cs] "m" (rseq_get_abi()->rseq_cs.arch.ptr), in RSEQ_TEMPLATE_IDENTIFIER() 89 RSEQ_ASM_STORE_RSEQ_CS(1, 3b, rseq_cs) in RSEQ_TEMPLATE_IDENTIFIER() 113 [rseq_cs] "m" (rseq_get_abi()->rseq_cs.arch.ptr), in RSEQ_TEMPLATE_IDENTIFIER() 157 RSEQ_ASM_STORE_RSEQ_CS(1, 3b, rseq_cs) in RSEQ_TEMPLATE_IDENTIFIER() 173 [rseq_cs] "m" (rseq_get_abi()->rseq_cs.arch.ptr), in RSEQ_TEMPLATE_IDENTIFIER() 214 RSEQ_ASM_STORE_RSEQ_CS(1, 3b, rseq_cs) in RSEQ_TEMPLATE_IDENTIFIER() 238 [rseq_cs] "m" (rseq_get_abi()->rseq_cs.arch.ptr), in RSEQ_TEMPLATE_IDENTIFIER() 298 RSEQ_ASM_STORE_RSEQ_CS(1, 3b, rseq_cs) in RSEQ_TEMPLATE_IDENTIFIER() 320 [rseq_cs] "m" (rseq_get_abi()->rseq_cs.arch.ptr), in RSEQ_TEMPLATE_IDENTIFIER() [all …]
|
A D | rseq-arm64-bits.h | 26 RSEQ_ASM_STORE_RSEQ_CS(2, 1b, rseq_cs) in RSEQ_TEMPLATE_IDENTIFIER() 41 [rseq_cs] "m" (rseq_get_abi()->rseq_cs.arch.ptr), in RSEQ_TEMPLATE_IDENTIFIER() 84 RSEQ_ASM_STORE_RSEQ_CS(2, 1b, rseq_cs) in RSEQ_TEMPLATE_IDENTIFIER() 102 [rseq_cs] "m" (rseq_get_abi()->rseq_cs.arch.ptr), in RSEQ_TEMPLATE_IDENTIFIER() 143 RSEQ_ASM_STORE_RSEQ_CS(2, 1b, rseq_cs) in RSEQ_TEMPLATE_IDENTIFIER() 157 [rseq_cs] "m" (rseq_get_abi()->rseq_cs.arch.ptr), in RSEQ_TEMPLATE_IDENTIFIER() 195 RSEQ_ASM_STORE_RSEQ_CS(2, 1b, rseq_cs) in RSEQ_TEMPLATE_IDENTIFIER() 213 [rseq_cs] "m" (rseq_get_abi()->rseq_cs.arch.ptr), in RSEQ_TEMPLATE_IDENTIFIER() 268 RSEQ_ASM_STORE_RSEQ_CS(2, 1b, rseq_cs) in RSEQ_TEMPLATE_IDENTIFIER() 289 [rseq_cs] "m" (rseq_get_abi()->rseq_cs.arch.ptr), in RSEQ_TEMPLATE_IDENTIFIER() [all …]
|
A D | rseq-ppc-bits.h | 27 RSEQ_ASM_STORE_RSEQ_CS(1, 3b, rseq_cs) in RSEQ_TEMPLATE_IDENTIFIER() 47 [rseq_cs] "m" (rseq_get_abi()->rseq_cs.arch.ptr), in RSEQ_TEMPLATE_IDENTIFIER() 92 RSEQ_ASM_STORE_RSEQ_CS(1, 3b, rseq_cs) in RSEQ_TEMPLATE_IDENTIFIER() 118 [rseq_cs] "m" (rseq_get_abi()->rseq_cs.arch.ptr), in RSEQ_TEMPLATE_IDENTIFIER() 162 RSEQ_ASM_STORE_RSEQ_CS(1, 3b, rseq_cs) in RSEQ_TEMPLATE_IDENTIFIER() 181 [rseq_cs] "m" (rseq_get_abi()->rseq_cs.arch.ptr), in RSEQ_TEMPLATE_IDENTIFIER() 222 RSEQ_ASM_STORE_RSEQ_CS(1, 3b, rseq_cs) in RSEQ_TEMPLATE_IDENTIFIER() 247 [rseq_cs] "m" (rseq_get_abi()->rseq_cs.arch.ptr), in RSEQ_TEMPLATE_IDENTIFIER() 306 RSEQ_ASM_STORE_RSEQ_CS(1, 3b, rseq_cs) in RSEQ_TEMPLATE_IDENTIFIER() 333 [rseq_cs] "m" (rseq_get_abi()->rseq_cs.arch.ptr), in RSEQ_TEMPLATE_IDENTIFIER() [all …]
|
A D | rseq-ppc.h | 66 #define RSEQ_ASM_STORE_RSEQ_CS(label, cs_label, rseq_cs) \ argument 73 "std %%r17, %[" __rseq_str(rseq_cs) "]\n\t" \ 126 #define RSEQ_ASM_STORE_RSEQ_CS(label, cs_label, rseq_cs) \ argument 130 RSEQ_STORE_INT(rseq_cs) "%%r17, %[" __rseq_str(rseq_cs) "]\n\t" \
|
A D | rseq-x86.h | 88 #define RSEQ_ASM_STORE_RSEQ_CS(label, cs_label, rseq_cs) \ argument 91 "movq %%rax, " __rseq_str(rseq_cs) "\n\t" \ 175 #define RSEQ_ASM_STORE_RSEQ_CS(label, cs_label, rseq_cs) \ argument 177 "movl $" __rseq_str(cs_label) ", " __rseq_str(rseq_cs) "\n\t" \
|
A D | rseq-arm.h | 111 #define RSEQ_ASM_STORE_RSEQ_CS(label, cs_label, rseq_cs) \ argument 114 "str r0, %[" __rseq_str(rseq_cs) "]\n\t" \
|
A D | rseq-s390.h | 107 #define RSEQ_ASM_STORE_RSEQ_CS(label, cs_label, rseq_cs) \ argument 110 LONG_S " %%r0, %[" __rseq_str(rseq_cs) "]\n\t" \
|
A D | rseq-mips.h | 115 #define RSEQ_ASM_STORE_RSEQ_CS(label, cs_label, rseq_cs) \ argument 118 LONG_S " $4, %[" __rseq_str(rseq_cs) "]\n\t" \
|
A D | rseq-arm64.h | 123 #define RSEQ_ASM_STORE_RSEQ_CS(label, cs_label, rseq_cs) \ argument 128 " str " RSEQ_ASM_TMP_REG ", %[" __rseq_str(rseq_cs) "]\n" \
|
A D | rseq-riscv.h | 83 #define RSEQ_ASM_STORE_RSEQ_CS(label, cs_label, rseq_cs) \ argument 86 REG_S RSEQ_ASM_TMP_REG_1 ", %[" __rseq_str(rseq_cs) "]\n" \
|
A D | rseq-abi.h | 128 } rseq_cs; member
|
A D | rseq.h | 220 RSEQ_WRITE_ONCE(rseq_get_abi()->rseq_cs.arch.ptr, 0); in rseq_clear_rseq_cs()
|
/linux-6.3-rc2/include/uapi/linux/ |
A D | rseq.h | 45 struct rseq_cs { struct 112 __u64 rseq_cs; member
|